Advertisement
Guest User

Untitled

a guest
Feb 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. class NonCopyable {
  2. public:
  3.     virtual ~NonCopyable () {}
  4.    
  5.     NonCopyable (const NonCopyable & rhv) {} = delete;
  6.     NonCopyable & operator=(const NonCopyable & rhv) = delete;
  7.  
  8.     NonCopyable (const NonCopyable && rhv) {} = default;
  9.     NonCopyable & operator=(const NonCopyable && rhv) = default;
  10. private:
  11.     NonCopyable () {}
  12. };
  13.  
  14. class NonMovable {
  15. public:
  16.     virtual ~NonMovable () {}
  17.    
  18.     NonMovable (const NonMovable & rhv) {} = default;
  19.     NonMovable & operator=(const NonMovable & rhv) = default;
  20.  
  21.     NonMovable (const NonMovable && rhv) {} = delete;
  22.     NonMovable & operator=(const NonMovable && rhv) = delete;
  23. private:
  24.     NonMovable () {}
  25. };
  26.  
  27. class One : public NonCopyable {};
  28. class Two : public NonMovable {};
  29. class Three : public NonMovable, public NonCopyable {};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement