SST
11.1.0
StructuralSimulationToolkit
|
Implements a constructor for a derived base as usually happens with subcomponents, e.g. More...
#include <elementbuilder.h>
Public Types | |
template<class T > | |
using | is_constructible = typename NewCtor::template is_constructible< T > |
template<class __NewCtor > | |
using | ExtendCtor = ExtendedCtor< __NewCtor, ExtendedCtor< NewCtor, OldCtor >> |
template<class NewBase > | |
using | ChangeBase = typename NewCtor::template ChangeBase< NewBase > |
Static Public Member Functions | |
template<class T > | |
static std::enable_if < OldCtor::template is_constructible< T >::value, bool >::type | add () |
The derived Ctor can "block" the more abstract Ctor, meaning an object should only be instantiated as the most derived type. More... | |
template<class T > | |
static std::enable_if <!OldCtor::template is_constructible< T >::value, bool >::type | add () |
Implements a constructor for a derived base as usually happens with subcomponents, e.g.
class U extends API extends Subcomponent. You can construct U as either an API* or a Subcomponent* depending on usage.
|
inlinestatic |
The derived Ctor can "block" the more abstract Ctor, meaning an object should only be instantiated as the most derived type.
enable_if here checks if both the derived API and the parent API are still valid