2 // { dg-do compile { target c++11 } }
4 template<typename... T> using void_t = void;
6 template<typename T> struct TemporaryBindObject
12 static constexpr bool value = true;
17 static constexpr bool value = false;
20 template<template<typename...> class Dest> struct TestValidBind
22 template<typename T, typename = void_t<>> struct toTypesOf : MyFalseType
24 template<template<typename...> class Src, typename... Ts> struct toTypesOf<Src<Ts...>, void_t<Dest<Ts...,float>>> : MyTrueType
28 template<typename T> struct OneParamStruct
31 template<typename T1, typename T2> struct TwoParamStruct
35 using tmp = TemporaryBindObject<int>;
39 bool value1 = TestValidBind<TwoParamStruct>::toTypesOf<TemporaryBindObject<int>>::value;
40 bool value2 = TestValidBind<OneParamStruct>::toTypesOf<TemporaryBindObject<int>>::value;