Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
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.
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... | |