|
CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
Go to the source code of this file.
Classes | |
| class | notstd::Cloneable |
| Base class for cloning. More... | |
| struct | notstd::has_clone< T, typename > |
| Base type inherits from std::false_type if T does not have clone method. More... | |
| struct | notstd::has_clone< T, void_t< decltype(&T::clone)> > |
| Specialized case inherits from std::true_type if T does have clone method. More... | |
| struct | notstd::has_move< T, typename > |
| Base type inherits from std::false_type if T does not have move method. More... | |
| struct | notstd::has_move< T, void_t< decltype(&T::move)> > |
| Specialized case inherits from std::true_type if T does have move method. More... | |
| class | notstd::cloneable_ptr< Type > |
| A 'cloneable_ptr' can be used in place of 'unique_ptr'. More... | |
Namespaces | |
| notstd | |
| Non-std smart pointer classes and functions. | |
Macros | |
| #define | ABSTRACT_CLONEABLE(T) |
| #define | ABSTRACT_CLONEABLE_DERIVED(T) |
| #define | CLONEABLE(T) |
| #define | CLONEABLE_NEEDS_DESTRUCTOR_DEF(T) |
Functions | |
| template<typename T , typename... Args> | |
| std::unique_ptr< T > | notstd::make_unique (Args &&... args) |
| c++17 does not include 'make_unique' More... | |
| template<typename T , typename... Args> | |
| cloneable_ptr< T > | notstd::make_cloneable (Args &&... args) |
| make a cloneable_ptr<T> via T(Args... args) More... | |
| template<typename T , typename std::enable_if<!has_clone< T >::value, void >::type * = nullptr> | |
| std::unique_ptr< T > | notstd::clone (const T &obj) |
| template<typename T , typename std::enable_if<!has_move< T >::value, void >::type * = nullptr> | |
| std::unique_ptr< T > | notstd::clone_move (T &&obj) |
| Construct std::unique_ptr<T> from rvalue reference. More... | |
| template<typename Type > | |
| void | notstd::swap (cloneable_ptr< Type > &A, cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator< (const cloneable_ptr< Type > &A, const cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator== (const cloneable_ptr< Type > &A, const cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator!= (const cloneable_ptr< Type > &A, const cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator== (std::nullptr_t, const cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator!= (std::nullptr_t, const cloneable_ptr< Type > &B) |
| template<typename Type > | |
| bool | notstd::operator== (const cloneable_ptr< Type > &A, std::nullptr_t) |
| template<typename Type > | |
| bool | notstd::operator!= (const cloneable_ptr< Type > &A, std::nullptr_t) |
| #define ABSTRACT_CLONEABLE | ( | T | ) |
Include in a class/struct definition that inherits from Cloneable to make it also cloneable
Definition at line 12 of file cloneable_ptr.hh.
| #define ABSTRACT_CLONEABLE_DERIVED | ( | T | ) |
Include in a class/struct definition that inherits from Cloneable to make it also cloneable
Definition at line 29 of file cloneable_ptr.hh.
| #define CLONEABLE | ( | T | ) |
Include in a class/struct definition that inherits from Cloneable to make it also cloneable
Definition at line 46 of file cloneable_ptr.hh.
| #define CLONEABLE_NEEDS_DESTRUCTOR_DEF | ( | T | ) |
Include in a class/struct definition that inherits from Cloneable to make it also cloneable, but do not include destructor defintion
Definition at line 63 of file cloneable_ptr.hh.