37 static_assert(std::is_same<int, first_type<int, long, char>>::value,
"first_type broken");
38 static_assert(std::is_same<char, last_type<int, long, char>>::value,
"last_type broken");
40 static_assert(std::is_same<void, nth_type<0, void, long, char>>::value,
"nth_type broken");
41 static_assert(std::is_same<long, nth_type<1, void, long, char>>::value,
"nth_type broken");
42 static_assert(std::is_same<char, nth_type<2, void, long, char>>::value,
"nth_type broken");
44 static_assert(std::is_same<void, NthType<0, void, long, char>::type>::value,
"NthType broken");
45 static_assert(std::is_same<long, NthType<1, void, long, char>::type>::value,
"NthType broken");
46 static_assert(std::is_same<char, NthType<2, void, long, char>::type>::value,
"NthType broken");
48 static_assert(std::is_same<void, void_t<>>::value,
"void_t broken");
49 static_assert(std::is_same<void, void_t<int>>::value,
"void_t broken");
50 static_assert(std::is_same<void,
void_t<
decltype(1)>>::value,
"void_t broken");
53 "TypeTemplateTraits::IsInstanceOf broken");
55 "TypeTemplateTraits::IsInstanceOf broken");
57 static_assert(std::is_same<void, last_type<int, void>>::value,
"last_type broken");
65 "HasAtMethod broken");
144 static_assert(hasFoo_v<nvv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
145 static_assert(!hasFoo_v<nvc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
146 static_assert(!hasFoo_v<ncv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
147 static_assert(!hasFoo_v<ncc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
148 static_assert(!hasFoo_v<svv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
149 static_assert(!hasFoo_v<svc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
150 static_assert(!hasFoo_v<scv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
151 static_assert(!hasFoo_v<scc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
153 static_assert(!hasStaticFoo_v<nvv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
154 static_assert(!hasStaticFoo_v<nvc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
155 static_assert(!hasStaticFoo_v<ncv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
156 static_assert(!hasStaticFoo_v<ncc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
157 static_assert(hasStaticFoo_v<svv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
158 static_assert(!hasStaticFoo_v<svc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
159 static_assert(!hasStaticFoo_v<scv>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
160 static_assert(!hasStaticFoo_v<scc>,
"ERROR ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK");
168 "TypeTemplateTraits::DisassembleTemplate");
170 "TypeTemplateTraits::DisassembleTemplate");
174 "TypeTemplateTraits::DisassembleTemplate::ReplaceTemplate");
179 "TypeTemplateTraits::DisassembleTemplate::ReplaceParameters");
183 "MakeIndexSequence broken");
185 "MakeIndexSequenceFor broken");
187 "MakeIndexRange broken");
189 template <
class T,
class U =
int>
220 static_assert(
DecayAllTest<int (*)[2]>::value,
"ERROR DecayAll");
221 static_assert(
DecayAllTest<int (*
const)[2]>::value,
"ERROR DecayAll");
223 static_assert(
DecayAllTest<
const int (*)[2]>::value,
"ERROR DecayAll");
224 static_assert(
DecayAllTest<
const int (*
const)[2]>::value,
"ERROR DecayAll");
226 static_assert(
DecayAllTest<int(
int), int (*)(int)>::value,
"ERROR DecayAll");