gcc/libstdc++-v3/include/std
Ville Voutilainen a577f786b6 Implement the latest proposed resolution of LWG 2756.
* include/std/optional (Optional_base(const _Tp&))
	(Optional_base(_Tp&&), using _Base::_Base): Remove.
	(optional(nullopt_t)): New.
	(optional(_Up&&)): Invoke base directly with in_place
	rather than creating a temporary, add default template
	argument, change constraints.
	(optional(const optional<_Up>&)): Invoke base directly
	with in_place, remove unnecessary constraints.
	(optional(optional<_Up>&& __t)): Likewise.
	(optional(in_place_t, _Args&&...)): New.
	(optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
	(operator=(_Up&&)): Add default template argument, change constraints.
	(operator=(const optional<_Up>&)): Put is_same first in the
	constraints.
	(operator=(optional<_Up>&&)): Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Add a test to
	verify assignment from something that can't be perfect-forwarded.
	* testsuite/20_util/optional/cons/value.cc: Add tests to verify
	that a nested optional is disengaged when constructed
	from a disengaged element type,	and to verify that assignments
	from an engaged element type engage the optional.

From-SVN: r239593
2016-08-18 23:33:57 +03:00
..
algorithm
any Implement LWG 2744 and LWG 2754. 2016-08-15 18:06:09 +03:00
array libstdc++/72745 add static assertion for invalid tuple access 2016-07-31 18:08:52 +01:00
atomic LWG 2441 Provide exact-width atomic typedefs 2016-07-20 19:21:59 +01:00
bitset Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
chrono Implement C++17 rounding functions for std::chrono (P0092R1) 2016-08-05 14:52:59 +01:00
codecvt
complex Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
condition_variable Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
deque
forward_list
fstream Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
functional Use ::new to avoid finding overloaded operator new 2016-08-06 11:21:07 +01:00
future Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
iomanip Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
ios
iosfwd Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
iostream
istream LWG 2328 Rvalue stream extraction should use perfect forwarding 2016-07-20 19:21:53 +01:00
iterator
limits Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
list
locale
map
memory
mutex
numeric
optional Implement the latest proposed resolution of LWG 2756. 2016-08-18 23:33:57 +03:00
ostream
queue
random
ratio Implement C++17 variable templates for type traits. 2016-07-29 22:01:39 +03:00
regex
scoped_allocator Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
set
shared_mutex Define C++17 feature-test macros 2016-08-03 19:11:10 +01:00
sstream Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
stack
stdexcept Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
streambuf
string Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
string_view Implement std::string_view and P0254r2, 2016-07-28 18:15:26 +03:00
system_error Implement C++17 variable templates for type traits. 2016-07-29 22:01:39 +03:00
thread Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
tuple Add a feature macro for C++17 make_from_tuple. 2016-08-15 15:46:47 +03:00
type_traits Define std::is_callable and std::is_nothrow_callable 2016-08-04 19:02:56 +01:00
typeindex
unordered_map
unordered_set
utility Implement LWG 2744 and LWG 2754. 2016-08-15 18:06:09 +03:00
valarray Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00
variant Implement <variant> 2016-08-18 20:31:26 +00:00
vector Remove trailing whitespace from libstdc++ headers 2016-06-16 14:47:35 +01:00