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>(); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits