[libcxx] r283339 - Make tests for is_empty better. No functional change.
Marshall Clow via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 5 10:01:16 PDT 2016
Author: marshall
Date: Wed Oct 5 12:01:16 2016
New Revision: 283339
URL: http://llvm.org/viewvc/llvm-project?rev=283339&view=rev
Log:
Make tests for is_empty better. No functional change.
Modified:
libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp
Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp?rev=283339&r1=283338&r2=283339&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp Wed Oct 5 12:01:16 2016
@@ -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>();
}
More information about the cfe-commits
mailing list