forked from OSchip/llvm-project
Make tests for is_empty better. No functional change.
llvm-svn: 283339
This commit is contained in:
parent
b530f1649e
commit
d836a9d5f1
|
@ -11,6 +11,14 @@
|
|||
|
||||
// is_empty
|
||||
|
||||
// T is a non-union class type with:
|
||||
// no non-static data members,
|
||||
// no unnamed bit-fields of non-zero length,
|
||||
// no virtual member functions,
|
||||
// no virtual base classes,
|
||||
// and no base class B for which is_empty_v<B> is false.
|
||||
|
||||
|
||||
#include <type_traits>
|
||||
#include "test_macros.h"
|
||||
|
||||
|
@ -44,22 +52,33 @@ void test_is_not_empty()
|
|||
#endif
|
||||
}
|
||||
|
||||
class Empty
|
||||
{
|
||||
};
|
||||
class Empty {};
|
||||
struct NotEmpty { int foo; };
|
||||
|
||||
class NotEmpty
|
||||
class VirtualFn
|
||||
{
|
||||
virtual ~NotEmpty();
|
||||
virtual ~VirtualFn();
|
||||
};
|
||||
|
||||
union Union {};
|
||||
|
||||
struct EmptyBase : public Empty {};
|
||||
struct VirtualBase : virtual Empty {};
|
||||
struct NotEmptyBase : public NotEmpty {};
|
||||
|
||||
struct StaticMember { static int foo; };
|
||||
struct NonStaticMember { int foo; };
|
||||
|
||||
struct bit_zero
|
||||
{
|
||||
int : 0;
|
||||
};
|
||||
|
||||
struct bit_one
|
||||
{
|
||||
int : 1;
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
test_is_not_empty<void>();
|
||||
|
@ -72,7 +91,14 @@ int main()
|
|||
test_is_not_empty<char[]>();
|
||||
test_is_not_empty<Union>();
|
||||
test_is_not_empty<NotEmpty>();
|
||||
test_is_not_empty<VirtualFn>();
|
||||
test_is_not_empty<VirtualBase>();
|
||||
test_is_not_empty<NotEmptyBase>();
|
||||
test_is_not_empty<NonStaticMember>();
|
||||
test_is_empty<bit_one>();
|
||||
|
||||
test_is_empty<Empty>();
|
||||
test_is_empty<EmptyBase>();
|
||||
test_is_empty<StaticMember>();
|
||||
test_is_empty<bit_zero>();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue