[LLVMbugs] [Bug 18185] Deleted copy/assign considered "trivial" by __has_trivial_{copy, assign}

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Dec 8 23:39:35 PST 2013


http://llvm.org/bugs/show_bug.cgi?id=18185

Richard Smith <richard-llvm at metafoo.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |richard-llvm at metafoo.co.uk
         Resolution|---                         |INVALID

--- Comment #1 from Richard Smith <richard-llvm at metafoo.co.uk> ---
12.8 [class.copy]p12:

"A copy/move constructor for class X is trivial if it is not user-provided, its
parameter-type-list is equivalent to the parameter-type-list of an implicit
declaration, and if
  — class X has no virtual functions (10.3) and no virtual base classes (10.1),
and
  — class X has no non-static data members of volatile-qualified type, and
  — the constructor selected to copy/move each direct base class subobject is
trivial, and
  — for each non-static data member of X that is of class type (or array
thereof), the constructor selected to copy/move that member is trivial;
otherwise the copy/move constructor is non-trivial."

So S's copy constructor is trivial. And likewise its copy assignment operator
is trivial. If GCC says otherwise, then there's either a bug in GCC or a bug in
the standard.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131209/020b8420/attachment.html>


More information about the llvm-bugs mailing list