See title.
I have:
class Foo { private: Foo(); public: static Foo* create(); }
What need I do from here to make Foo un-copyable?
Thanks!
class Foo { private: Foo(); Foo( const Foo& ); // non construction-copyable Foo& operator=( const Foo& ); // non copyable public: static Foo* create(); }
If you're using boost, you can also inherit from noncopyable : http://www.boost.org/doc/libs/1_41_0/boost/noncopyable.hpp
EDIT: C++11 version if you have a compiler supporting this feature:
class Foo { private: Foo(); public: Foo( const Foo& ) = delete; // non construction-copyable Foo& operator=( const Foo& ) = delete; // non copyable static Foo* create(); }
Note that deleted methods should be public: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-delete
1.4m articles
1.4m replys
5 comments
57.0k users