r271296 - in /trunk/libstdc++-v3: ChangeLog inc...

redi@gcc.gnu.org redi@gcc.gnu.org
Thu May 16 20:30:00 GMT 2019


Author: redi
Date: Thu May 16 20:30:35 2019
New Revision: 271296

URL: https://gcc.gnu.org/viewcvs?rev=271296&root=gcc&view=rev
Log:
Implement sane variant converting constructor (P0608R3)

	* include/std/variant (__overload_set): Remove.
	(_Arr): New helper.
	(_Build_FUN): New class template to define a single FUN overload,
	with specializations to prevent unwanted conversions, as per P0608R3.
	(_Build_FUNs): New class template to build an overload set of FUN.
	(_FUN_type): New alias template to perform overload resolution.
	(__accepted_type): Use integer_constant base for failure case. Use
	_FUN_type for successful case.
	(variant::__accepted_index): Use _Tp instead of _Tp&&.
	(variant::variant(_Tp&&)): Likewise.
	(variant::operator=(_Tp&&)): Likewise.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/variant
    trunk/libstdc++-v3/testsuite/20_util/variant/compile.cc
    trunk/libstdc++-v3/testsuite/20_util/variant/run.cc



More information about the Libstdc++-cvs mailing list