Synopsis: | If objects of a class should never be copied, then the copy constructor and the copy assignment operator shall be declared as deleted functions |
Language: | C++ |
Severity Level: | 2 |
Category: | Object Life Cycle |
Description: |
Use deleted functions instead of old-fashioned private declarations to prohibit copying. Wrong example: class SomeClass { private: SomeClass(SomeClass const&); SomeClass& operator=(SomeClass const&); }; Right example: class SomeClass { public: SomeClass(SomeClass const&) = delete; SomeClass& operator=(SomeClass const&) = delete; }; |