This module provides facilities to manage classes. This section allows you to access the C++ source files of the module. This module is part of Bpp/Standard . The files listed below are included in the interface part of the module. So any module dependent of this module is also dependent of the files listed here. The namespaces listed below are integrated in this module. That means any element declared in one of those namespaces can now be directly used by or from this module. The macrocommands listed below can be used without specifying the namespace where they have been defined. That means you can not define an element by your own that have the same name. add_method_slot(prMethod) Provides a slot for a given method. A slot is a nested class (without any code) with a name similar to the name of the original method (_slot is appended to the original name). Thus it allows to associate a static identifier with a method. This is useful when the method pointer needs to be given as a template parameter: instead of giving the method pointer (that is not a global reference), the associated static identifier (i.e. the method slot) is provided.
method_slot(prClass,prMethod) Provides the slot of a given method.
method_no(prReference,prClass,prMethod) Provides the unique number (from a given reference) assigned to a method.
class_no(prReference,prClass) Provides the unique number (from a given reference) assigned to a class.
class_indexer(prReference) Declares a class indexer inside a reference class.
static_class_indexer(prReference) Creates the class indexer of a reference class.
type_wrapper(prType) Wraps a type into a class. See the TypeWrapper class for details.
Here are listed the functions provided by the module. To use one of them, you have to specify the namespace of the module. Here are listed the classes provided by the module. To use one of them, you have to specify the namespace of the module. class clBaseObject
Defines the base class of all the other classes. template <class prReference> class clClassIndexer : public clBaseObject
Represents the indexer of a set of classes. It is used to assign unique numbers to classes and their methods. The numbering is a continuous sequence of indexes, starting from 0, so it is possible to store and access quickly data for the classes and their methods (through vectors for instance). An indexer must be located inside a class, called the reference for all the information that the class indexer and its associated classes (clClassInformation and clMethodInformation ) can provide. template <class prReference,class prClass> class clClassIndex : public clBaseObject
Represents the index of a class according to a given reference. template <class prReference,class prClass> class clMethodIndex : public clBaseObject
Represents the index of a class according to a given reference. template <class prReference,class prClass> class clClassInformation : public clBaseObject
Represents information (from a given reference) about a class. This class can not be instantiated. template <class prReference,class prClass,class prMethod> class clMethodInformation : public clBaseObject
Represents information (from a given reference) about a method. The last parameter prMethod is not a pointer on the method, but a slot (it is a static identifier the user must associate with the method, see the add_method_slot macrocommand for details). This class can not be instantiated. template <class prType> class clTypeWrapper
Wraps a type into a class. It is useful to manipulate a complex type expression (like a function pointer) as a single expression. Abstract class. template <int prVersion> class clVersion : public clBaseObject
Represents a version of an algorithm. Necessary to manipulate an algorithm that has several implementations. | | Copyright (c) 1999-2016 - Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net | Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. See this license for more details (http://www.gnu.org). |
|
|