diff --git a/tests/library/meta/value-type-binding-test.cpp b/tests/library/meta/value-type-binding-test.cpp index 5d6ebd1b5..6f3b4a679 100644 --- a/tests/library/meta/value-type-binding-test.cpp +++ b/tests/library/meta/value-type-binding-test.cpp @@ -59,11 +59,64 @@ namespace test{ struct Space { }; using Join = ulong; + template + struct Bugg + { + static_assert (not sizeof(X), "guggi"); + }; + + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = ""; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = "&"; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = " &&"; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = " const&"; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = " const &&"; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = " *"; + }; + template + struct TypeDiagnostics + { + using Type = X; + static constexpr auto postfix = " * const"; + }; + template inline string showType() { - return humanReadableTypeID (typeid(X).name()); + using Case = TypeDiagnostics; + using Type = typename Case::Type; + + return humanReadableTypeID (typeid(Type).name()) + + Case::postfix; } }//(end)fixture @@ -166,6 +219,15 @@ namespace test{ cout << showType::value_type>() <::reference>() <::pointer>() <() <() <() <() <() <() <() <() <