This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

[v3] make std::ignore const


The FCD requires std::ignore to be a const instance of some
unspecified type, which the patch below implements by making
_Swallow_assign::operator= work on const objects.

The unnamed namespace is not needed because namespace-scope const
objects are static by default.

Test x86_64/Linux and committed to trunk.

 	* include/std/tuple (_Swallow_assign::operator=): Add const.
	(ignore): Replace anonymous namespace member with const instance.



Index: include/std/tuple
===================================================================
--- include/std/tuple ? (revision 160324)
+++ include/std/tuple ? (working copy)
@@ -690,16 +690,12 @@ namespace std
? struct _Swallow_assign
? {
? ? template<class _Tp>
- ? ? ?_Swallow_assign&
- ? ? ?operator=(const _Tp&)
+ ? ? ?const _Swallow_assign&
+ ? ? ?operator=(const _Tp&) const
? ? ? { return *this; }
? };

- ?// TODO: Put this in some kind of shared file.
- ?namespace
- ?{
- ? ?_Swallow_assign ignore;
- ?}; // anonymous namespace
+ ?const _Swallow_assign ignore{};

? /**
? ?* Stores a tuple of indices. Used by bind() to extract the elements


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