This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770)


This is needed to avoid problems with the new structured bindings
feature that landed in trunk yesterday.

As part of this patch I'm removing the docs for the DR 2742 and 2748
changes that I added earlier today. The manual doesn't need to track
changes against new features that only appear in trunk builds of GCC
and working drafts of the standard. DR 2770 should be documented
though, because it affects a C++11 feature that is in several GCC
releases.

	* doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries
	for 2742 and 2748.
	* doc/html/*: Regenerate.
	* include/std/utility (__tuple_size_cv_impl): New helper to safely
	detect tuple_size<T>::value, as per LWG 2770.
	(tuple_size<cv T>): Adjust partial specializations to derive from
	__tuple_size_cv_impl.
	* testsuite/20_util/tuple/cv_tuple_size.cc: Test SFINAE-friendliness.

Tested powerpc64le-linux, committed to trunk.

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]