SimpleITK  
itk::simple::NonCopyable Class Reference

An inheritable class to disable copying of a class. More...

#include <sitkNonCopyable.h>

+ Inheritance diagram for itk::simple::NonCopyable:

Detailed Description

An inheritable class to disable copying of a class.

This class disable the implicit implementations of the assignment and copy constructor for derived classes. The instantiation of the default implementation for either method in a derived class will result in a compile-time error because they are private in this class. However, this policy is not absolute for derived classes because explicit implementation of these methods could be implemented.

An advantage this approach has is the class hierarchy makes it obvious what the intent is, as compared to other approaches.

For example you should not be able to copy singleton object, because there should only be one of them. To utilize this class just derive from it:

class Singleton
: protected NonCopyable {...};
T * Singleton(const char *globalName, std::function< void()> deleteFunc)

Definition at line 49 of file sitkNonCopyable.h.

Public Member Functions

 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 

Protected Member Functions

 NonCopyable ()=default
 

Constructor & Destructor Documentation

◆ NonCopyable() [1/2]

itk::simple::NonCopyable::NonCopyable ( )
protecteddefault

References NonCopyable().

Referenced by NonCopyable(), NonCopyable(), and operator=().

◆ NonCopyable() [2/2]

itk::simple::NonCopyable::NonCopyable ( const NonCopyable & )
delete

References NonCopyable().

Member Function Documentation

◆ operator=()

NonCopyable & itk::simple::NonCopyable::operator= ( const NonCopyable & )
delete

References NonCopyable().


The documentation for this class was generated from the following file: