forked from OSchip/llvm-project
5ea341d7c4
From [class.copy.ctor]: ``` A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const volatile X&, and either there are no other parameters or else all other parameters have default arguments (9.3.4.7). A copy/move constructor for class X is trivial if it is not user-provided and if: - class X has no virtual functions (11.7.3) and no virtual base classes (11.7.2), and - the constructor selected to copy/move each direct base class subobject is trivial, and - or 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 `T(T&) = default`; should be trivial assuming that the previous provisions are met. This works in GCC, but not in Clang at the moment: https://godbolt.org/z/fTGe71b6P Reviewed By: royjacobson Differential Revision: https://reviews.llvm.org/D127593 |
||
---|---|---|
.. | ||
Unit | ||
clang-apply-replacements | ||
clang-change-namespace | ||
clang-doc | ||
clang-include-fixer | ||
clang-move | ||
clang-query | ||
clang-reorder-fields | ||
clang-tidy | ||
modularize | ||
pp-trace | ||
.clang-format | ||
.gitattributes | ||
CMakeLists.txt | ||
lit.cfg.py | ||
lit.site.cfg.py.in |