Commit Graph

5 Commits

Author SHA1 Message Date
Tim Shen
c42bc5d73b variant (variant::operator=): Fix assignment on references.
* libstdc++-v3/include/std/variant (variant::operator=): Fix assignment
	on references.
	* libstdc++-v3/testsuite/20_util/variant/compile.cc: Add test.

From-SVN: r240343
2016-09-22 08:45:55 +00:00
Tim Shen
41501d1ae7 re PR libstdc++/77641 (std::variant copy-initialization fails for type with non-trivial constexpr ctor)
PR libstdc++/77641
	* include/std/variant (_Variant_storage::_Variant_storage):
	Change _Variant_storage's union to be default constructible.
	* testsuite/20_util/variant/compile.cc: New test.

From-SVN: r240340
2016-09-22 03:15:58 +00:00
Tim Shen
f75d599982 variant: include bits/move.h for std::addressof.
2016-09-05  Tim Shen  <timshen@google.com>

	* include/std/variant: include bits/move.h for std::addressof.

From-SVN: r240001
2016-09-05 19:52:11 +00:00
Mikhail Strelnikov
eddca7bd73 variant (_Variant_storage::_M_storage()): Use std::addressof instead of operator& to take address.
2016-09-05  Mikhail Strelnikov  <mikhail.strelnikov@gmail.com>

	* include/std/variant (_Variant_storage::_M_storage()): Use std::addressof
	instead of operator& to take address.

From-SVN: r239996
2016-09-05 19:40:44 +00:00
Tim Shen
197c757cb1 Implement <variant>
* include/Makefile.am: Add new file std/variant.
	* include/Makefile.in: Generated from Makefile.am.
	* include/bits/enable_special_members.h: Add a tag type to allow
	the construction in non-default constructor.
	* include/bits/uses_allocator.h: Add convenience traits to
	detect constructibility.
	* include/std/variant: Implement <variant>.
	* testsuite/20_util/variant/compile.cc: Compile-time tests.
	* testsuite/20_util/variant/run.cc: Runtime tests.

From-SVN: r239590
2016-08-18 20:31:26 +00:00