1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Foo:: Foo() { } std::true_type blarg(); template <typename T> decltype(std::declval<T &>().put(foo, bar), std::true_type()) has_module_api_(T && t); void foo() { using V = decltype(STD::declval<T &>().put(foo, bar), std::true_type()); } template <typename T> decltype(std::declval<T &>()./* ((( */ put(foo, bar), std::true_type()) has_module_api_(T && t);