Foo::Foo() { } std::true_type blarg(); template decltype(std::declval().put(foo, bar), std::true_type()) has_module_api_(T && t); void foo() { using V = decltype(STD::declval().put(foo, bar), std::true_type()); } template decltype(std::declval()./* ((( */put(foo, bar), std::true_type()) has_module_api_(T && t);