#include #include #include #include int main(){ struct NotDefaultConstructible { NotDefaultConstructible(int){}; }; // prints 0 std::cout << std::is_default_constructible< NotDefaultConstructible >::value << std::endl; using fusion_pair1 = boost::fusion::pair; // should print 0 // fails to compile on clang (xcode 7, 3.4, 3.6, 3.7), gcc 4.9 // prints 1 on gcc 5, clang 3.4 std::cout << std::is_default_constructible< fusion_pair1 >::value << std::endl; return 0; }