Fix type_name for abstract classes. Fixes #172.

This commit is contained in:
Peter Dimov
2024-04-24 21:46:32 +03:00
parent d03e58b77e
commit 965508d9e1
2 changed files with 20 additions and 2 deletions

View File

@@ -55,6 +55,13 @@ template<class T1, class T2> struct X
template<class T1, class T2> struct Y;
class W
{
public:
virtual void f() = 0;
};
enum E1
{
e1
@@ -122,6 +129,7 @@ int main()
TEST(A);
TEST(B);
TEST(C);
TEST(W);
TEST(E1);
@@ -143,6 +151,9 @@ int main()
TEST(C&);
TEST(C const&);
TEST(W const);
TEST(W&);
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
TEST(B&&);
@@ -156,6 +167,8 @@ int main()
TEST(C*);
TEST(C const* volatile*);
TEST(W volatile*);
TEST(void*);
TEST(void const* volatile*);
@@ -307,6 +320,8 @@ int main()
TEST(std::pair<C, C>);
TEST(std::pair<W, W>);
TEST(std::pair<void, void>);
TEST(std::pair<std::pair<void, void>, void>);
@@ -336,9 +351,11 @@ int main()
TEST(X<A const&, B&> volatile&);
TEST(X<C, C>);
TEST(X<W, W>);
TEST(Y<A, B>);
TEST(Y<C, C>);
TEST(Y<W, W>);
TEST(X<std::pair<void, void>, void>);