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