+namespace fc_test {
+
+ // SFINAE test
+ template <typename T>
+ class has_set_array_size {
+ typedef char select_small;
+ class select_big {
+ char dummy[2];
+ };
+
+ template <typename C, void (C::*) (size_t)> class selector
+ {};
+
+ template <typename C> static select_small test( selector<C, &C::set_array>* ) ;
+ template <typename C> static select_big test(...);
+
+ public:
+ static constexpr bool value = sizeof(test<T>(0)) == sizeof(char) ;
+ };
+