#include <coherence/lang/class_spec.hpp>
Inherited by abstract_spec, cloneable_spec, and throwable_spec.
Managed classes are implementations of coherence::lang::Object, and include a set of well known features, which are auto-generated by this helper class:
The template takes three parameters:
A normal class definition would be:
class Foo : public class_spec<Foo, extends<Bar>, implements<SomeInterface, SomeOtherInterface> > { // add support for auto-generated static create methods friend class factory<Foo>; protected: // Constructors are defined as protected, and access via // auto-generated create methods, with matching signatures Foo() : super() // calls Bar() { } public: // normal class definition.... };
Public Types | |
typedef class_spec | this_spec |
Specification definition. | |
typedef factory< T > | factory_spec |
Factory for this class. | |
typedef class_spec | super |
Definition T's actual parent class. | |
typedef E::inherited | super_spec |
Definition of the spec's parent class. | |
typedef E::inherited_literal | inherited |
Definition T's logical parent class. | |
typedef TypedHandle< T > | Handle |
Standard Handle definition. | |
typedef TypedHandle < const T > | View |
Standard View definition. | |
typedef TypedHolder< T > | Holder |
Standard Holder definition. | |
typedef I::interface_1 | interface_1 |
implemented interface typedefs | |
Static Public Member Functions | |
static Handle | create () |
Generate a set of static "create" methods matching the signatures of class T's constructors. | |
Protected Member Functions | |
class_spec () | |
Generate a set of proxy constructors matching the signatures of the parent class's constructors. |
class_spec | ( | ) | [inline, protected] |
Generate a set of proxy constructors matching the signatures of the parent class's constructors.
NOTE: Compilation errors referencing this line likely indicate that class being defined by this spec makes calls a "super" constructor supplying a set of parameters for which there is no exact match on the parent class.
static Handle create | ( | ) | [inline, static] |
Generate a set of static "create" methods matching the signatures of class T's constructors.
NOTE: Compilation errors referencing this line likely indicate that the parameters supplied by the caller to the create method did not match one of the constructors.