Hello, I'm working on a project to move from GCC 4.9.3 to GCC 6.1 In the process I've a hit a compilation failure which passed with GCC 4.9.3 The reduced test case : ====================================== #include <type_traits> namespace { struct foo { template<class T, std::size_t = sizeof(T)> std::false_type operator()(T&); std::true_type operator()(...); }; struct FooIncomplete; } int main() { std::result_of<foo(FooIncomplete&)>::type x; return 0; } ======================================== Error: unittest/tMetaIsIncomplete.cpp: In function ‘int main()’: unittest/tMetaIsIncomplete.cpp:38:5: error: ‘type’ is not a member of ‘std::result_of<{anonymous}::foo({anonymous}::FooIncomplete&)>’ std::result_of<foo(FooIncomplete&)>::type(); ^~~ The above test case compiles fine with Clang 3.8 and Visual Studio 2015. Is this a regression with GCC ? Am I doing something wrong here ? Any help is appreciated. Regards, Veena