// PR c++/44969 template struct enable_if { typedef T type; }; template struct enable_if { }; template class mini_is_constructible { typedef char one; typedef struct { char arr[2]; } two; template static typename enable_if<(sizeof(Tp1(Arg1_(), Arg2_()), 1) > 0), one>::type test(int); template static two test(...); public: static const bool value = sizeof(test(0)) == 1; }; class A { }; int Test[mini_is_constructible::value ? -1 : 1];