#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.