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]

RFC std::ignore


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.

Any objections?  Are there any ABI issues?

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]