Public Member Functions | Static Public Member Functions

OpenTissue::utility::ClassIDCompositor< Base, Self > Class Template Reference

#include <utility_class_id.h>

Inheritance diagram for OpenTissue::utility::ClassIDCompositor< Base, Self >:
OpenTissue::utility::ClassID< Self > OpenTissue::utility::ClassIDInterface

List of all members.

Public Member Functions

virtual size_t const class_id () const

Static Public Member Functions

static size_t const id ()

Detailed Description

template<class Base, class Self>
class OpenTissue::utility::ClassIDCompositor< Base, Self >

Helper class for solving ambiguousity between class IDs. This class enables inheritance from another class, which already have a class ID.

Problem:

 class SomeBase:
     public ClassID<SomeBase>
 { ... };
 class SomeClass:
     public SomeBase
   , public ClassID<SomeClass>
 { ... }; // Error: id() and class_id() will be ambiguous

Solution:

 class SomeClass:
     public ClassIDCompositor<SomeBase, SomeClass>
 { ... };
Template Parameters:
Base Some base class, which will also be inherited
Self The deriving class

Member Function Documentation

template<class Base , class Self >
virtual size_t const OpenTissue::utility::ClassIDCompositor< Base, Self >::class_id (  )  const [inline, virtual]

Query the class ID.

Returns:
The object's class ID

Reimplemented from OpenTissue::utility::ClassID< Self >.

template<class Base , class Self >
static size_t const OpenTissue::utility::ClassIDCompositor< Base, Self >::id (  )  [inline, static]

Query the object ID.

Returns:
The object ID

Reimplemented from OpenTissue::utility::ClassID< Self >.


The documentation for this class was generated from the following file: