Although libc++ doesn't yet implement variant we do have tests!
@STL_MSFT @CaseyCarter IIRC you already have a <variant> implementation. Would you mind checking these tests against your implementation?
Paths
| Differential D26903
[libcxx] Add <variant> tests (but not implementation) ClosedPublic Authored by EricWF on Nov 20 2016, 4:54 PM.
Details
Summary Although libc++ doesn't yet implement variant we do have tests! @STL_MSFT @CaseyCarter IIRC you already have a <variant> implementation. Would you mind checking these tests against your implementation?
Diff Detail Event TimelineEricWF updated this object. Comment Actions I'll take a look at these tomorrow; I don't have easy access to my implementation with the changes from P0510 and P0504 from home (it's waiting on a compiler bugfix to checkin).
EricWF edited edge metadata. Comment Actions
Comment Actions Found some minor issues.
Comment Actions Address almost all inline comments.
EricWF edited edge metadata. EricWF marked 7 inline comments as done. Comment ActionsUpdate with fixes.
Comment Actions Other than the note in variant.variant\variant.swap\swap.pass.cpp, all passes now pass and all fails now fail with our implementation.
EricWF marked an inline comment as done. Comment ActionsWrap explicit instantiation in LIBCPP_ONLY block. Comment Actions Checking these into libc++ shortly. (But I'm disabling them for libc++ for obvious reasons). This revision is now accepted and ready to land.Nov 22 2016, 5:11 PM
Revision Contents
Diff 79001 test/std/utilities/variant/variant.hash/hash.pass.cpp
test/std/utilities/variant/variant.helpers/variant_alternative.pass.cpp
test/std/utilities/variant/variant.helpers/variant_size.pass.cpp
test/std/utilities/variant/variant.bad_variant_access/bad_variant_access.pass.cpp
test/std/utilities/variant/variant.general/nothing_to_do.pass.cpp
test/std/utilities/variant/variant.get/get_if_index.pass.cpp
test/std/utilities/variant/variant.get/get_if_type.pass.cpp
test/std/utilities/variant/variant.get/get_index.pass.cpp
test/std/utilities/variant/variant.get/get_type.pass.cpp
test/std/utilities/variant/variant.get/holds_alternative.pass.cpp
test/std/utilities/variant/variant.monostate.relops/relops.pass.cpp
test/std/utilities/variant/variant.monostate/monostate.pass.cpp
test/std/utilities/variant/variant.relops/relops.pass.cpp
test/std/utilities/variant/variant.synopsis/variant_npos.pass.cpp
test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp
test/std/utilities/variant/variant.variant/variant.dtor/dtor.pass.cpp
test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp
test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp
test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp
test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp
test/std/utilities/variant/variant.variant/variant_array.fail.cpp
test/std/utilities/variant/variant.variant/variant_empty.fail.cpp
test/std/utilities/variant/variant.variant/variant_reference.fail.cpp
test/std/utilities/variant/variant.variant/variant_void.fail.cpp
test/std/utilities/variant/variant.visit/visit.pass.cpp
test/support/archetypes.ipp
test/support/variant_test_helpers.hpp
|
"<class ..._Types>" has really terrible spacing. (Or as I like to say, "Space. The final frontier.")