http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46821

           Summary: swapping empty classes
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: marc.gli...@normalesup.org


Hello,

I noticed in the implementation of std::tuple that when a type is empty, swap
is implemented as:

      void
      _M_swap_impl(_Head&) { /* no-op */ }

and was wondering whether that was safe. Can't an empty type have copy, move,
assignment or swap with a non-trivial semantic? The object still has a unique
address, it could register it (in constructors) in a global data structure for
instance, and have assignment and swap change things in that data structure.

Reply via email to