Lumiera  0.pre.03
»edit your freedom«
nocopy.hpp File Reference

Go to the source code of this file.

Description

Mix-Ins to allow or prohibit various degrees of copying and cloning.

Whenever a class is conceived as entity with a well-defined "identity", or whenever a service has to manage resources, we consider it good practice to define it by default as "non copyable". This rules out a lot of complexities with mutable state and confusion regarding equality.

Remarks
inspired by Boost-Noncopyable

Definition in file nocopy.hpp.

Classes

class  Cloneable
 Types marked with this mix-in may be duplicated by copy-construction, yet may not be moved or transferred any further after creation. More...
 
class  MoveAssign
 Types marked with this mix-in may be moved and move-assigned. More...
 
class  MoveOnly
 Types marked with this mix-in may be moved but not copied. More...
 
class  NoInstance
 Not meant to be instantiated in any way. More...
 
class  NonAssign
 Types marked with this mix-in may be created and moved liberally at construction, while any further assignment to object instances is prohibited thereafter. More...
 
class  NonCopyable
 Any copy and copy construction prohibited. More...