// PR c++/70563 // { dg-do compile { target c++11 } } template using void_t = void; template struct TemporaryBindObject { }; struct MyTrueType { static constexpr bool value = true; }; struct MyFalseType { static constexpr bool value = false; }; template class Dest> struct TestValidBind { template> struct toTypesOf : MyFalseType {}; template class Src, typename... Ts> struct toTypesOf, void_t>> : MyTrueType {}; }; template struct OneParamStruct { }; template struct TwoParamStruct { }; using tmp = TemporaryBindObject; int main() { bool value1 = TestValidBind::toTypesOf>::value; bool value2 = TestValidBind::toTypesOf>::value; }