#include <mrpt/system/memory.h>#include <mrpt/utils/safe_pointers.h>#include <vector>#include <mrpt/otherlibs/stlplus/smart_ptr.hpp>Go to the source code of this file.
Classes | |
| class | mrpt::utils::CObjectPtr |
| A smart pointer to a CObject object. More... | |
| struct | mrpt::utils::TRuntimeClassId |
| A structure that holds runtime class type information. More... | |
| struct | mrpt::utils::CLASSINIT |
| Auxiliary structure used for CObject-based RTTI. More... | |
| class | mrpt::utils::CObject |
| The virtual base class of all MRPT classes with a unified RTTI system. More... | |
Namespaces | |
| mrpt | |
| This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. | |
| mrpt::utils | |
| Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. | |
Functions | |
| template<typename T , typename C , typename COUNTER > | |
| bool | std::operator== (const stlplus::smart_ptr_base< T, C, COUNTER > &a, const stlplus::smart_ptr_base< T, C, COUNTER > &b) |
| This operator enables comparing two smart pointers with "==" to test whether they point to the same object. More... | |
| template<typename T , typename C , typename COUNTER > | |
| bool | std::operator!= (const stlplus::smart_ptr_base< T, C, COUNTER > &a, const stlplus::smart_ptr_base< T, C, COUNTER > &b) |
| This operator enables comparing two smart pointers with "!=" to test whether they don't point to the same object. More... | |
RTTI classes and functions | |
| #define | CLASS_ID(class_name) static_cast<const mrpt::utils::TRuntimeClassId*>(&class_name::class##class_name) |
| Access to runtime class ID for a defined class name. More... | |
| #define | CLASS_ID_NAMESPACE(class_name, namespaceName) static_cast<const mrpt::utils::TRuntimeClassId*>(&namespaceName::class_name::class##class_name) |
| Access to runtime class ID for a defined class name. More... | |
| #define | CLASS_ID_TEMPLATE(class_name, T) static_cast<const mrpt::utils::TRuntimeClassId*>(& template <class T> class_name<T>::class##class_name) |
| Access to runtime class ID for a defined template class name. More... | |
| #define | IS_CLASS(ptrObj, class_name) ((ptrObj)->GetRuntimeClass()==CLASS_ID(class_name)) |
| Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is of the given class. More... | |
| #define | IS_DERIVED(ptrObj, class_name) ((ptrObj)->GetRuntimeClass()->derivedFrom(CLASS_ID(class_name))) |
| Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is an instance of the given class or any of its derived classes. More... | |
| #define | DEFINE_MRPT_OBJECT_CUSTOM_LINKAGE(class_name, _STATIC_LINKAGE_, _VIRTUAL_LINKAGE_) |
| Just like DEFINE_MRPT_OBJECT but with DLL export/import linkage keywords. More... | |
| #define | DEFINE_MRPT_OBJECT(class_name) DEFINE_MRPT_OBJECT_CUSTOM_LINKAGE(class_name, static /*none*/, virtual /*none*/) |
| This declaration must be inserted in all CObject classes definition, within the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_) DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2(class_name, base_name, _LINKAGE_ class_name) |
| #define | DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_) DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2(class_name, base_name, _LINKAGE_ class_name) |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_NO_LINKAGE(class_name, base_name) DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name) |
| #define | DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_NO_LINKAGE(class_name, base_name) DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name) |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name_LINKAGE_) |
| This declaration must be inserted in all CObject classes definition, before the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name_LINKAGE_) |
| This declaration must be inserted in all CObject classes definition, after the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE(class_name, _LINKAGE_) DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2(class_name, _LINKAGE_ class_name) |
| #define | DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE(class_name, _LINKAGE_) DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2(class_name, _LINKAGE_ class_name) |
| #define | DEFINE_MRPT_OBJECT_PRE_NO_LINKAGE(class_name) DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2(class_name, class_name) |
| #define | DEFINE_MRPT_OBJECT_POST_NO_LINKAGE(class_name) DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2(class_name, class_name) |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2(class_name, class_name_LINKAGE_) struct class_name_LINKAGE_##Ptr; |
| This declaration must be inserted in all CObject classes definition, before the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2(class_name, class_name_LINKAGE_) |
| This declaration must be inserted in all CObject classes definition, after the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE(class_name, base_name) DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, BASE_IMPEXP ) |
| This declaration must be inserted in all CObject classes definition, before the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_PRE(class_name) DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE(class_name, BASE_IMPEXP ) |
| This declaration must be inserted in all CObject classes definition, before the class declaration. More... | |
| #define | DEFINE_MRPT_OBJECT_POST(class_name) DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE(class_name, BASE_IMPEXP ) |
| #define | IMPLEMENTS_MRPT_OBJECT(class_name, base, NameSpace) |
| This must be inserted in all CObject classes implementation files. More... | |
| #define | DEFINE_VIRTUAL_MRPT_OBJECT(class_name) |
| This declaration must be inserted in virtual CSerializable classes definition: More... | |
| #define | IMPLEMENTS_VIRTUAL_MRPT_OBJECT(class_name, base_class_name, NameSpace) |
| This must be inserted as implementation of some required members for virtual CSerializable classes: More... | |
| typedef safe_ptr< TRuntimeClassId > | mrpt::utils::TRuntimeClassIdPtr |
| A wrapper class for a "TRuntimeClassId *", well-defined with respect to copy operators and constructors. More... | |
| class BASE_IMPEXP | mrpt::utils::CObject |
| void BASE_IMPEXP | mrpt::utils::registerClass (const mrpt::utils::TRuntimeClassId *pNewClass) |
| Register a class into the MRPT internal list of "CSerializable" descendents. More... | |
| void BASE_IMPEXP | mrpt::utils::registerClassCustomName (const char *customName, const TRuntimeClassId *pNewClass) |
| Mostly for internal use within mrpt sources, to handle exceptional cases with multiple serialization names for backward compatibility (CMultiMetricMaps, CImage,...) More... | |
| std::vector< const mrpt::utils::TRuntimeClassId * > BASE_IMPEXP | mrpt::utils::getAllRegisteredClasses () |
| Returns a list with all the classes registered in the system through mrpt::utils::registerClass. More... | |
| const TRuntimeClassId BASE_IMPEXP * | mrpt::utils::findRegisteredClass (const std::string &className) |
| Return info about a given class by its name, or NULL if the class is not registered. More... | |
| #define CLASS_ID | ( | class_name | ) | static_cast<const mrpt::utils::TRuntimeClassId*>(&class_name::class##class_name) |
| #define CLASS_ID_NAMESPACE | ( | class_name, | |
| namespaceName | |||
| ) | static_cast<const mrpt::utils::TRuntimeClassId*>(&namespaceName::class_name::class##class_name) |
| #define CLASS_ID_TEMPLATE | ( | class_name, | |
| T | |||
| ) | static_cast<const mrpt::utils::TRuntimeClassId*>(& template <class T> class_name<T>::class##class_name) |
| #define DEFINE_MRPT_OBJECT | ( | class_name | ) | DEFINE_MRPT_OBJECT_CUSTOM_LINKAGE(class_name, static /*none*/, virtual /*none*/) |
| #define DEFINE_MRPT_OBJECT_CUSTOM_LINKAGE | ( | class_name, | |
| _STATIC_LINKAGE_, | |||
| _VIRTUAL_LINKAGE_ | |||
| ) |
Just like DEFINE_MRPT_OBJECT but with DLL export/import linkage keywords.
Note: The replication of macro arguments is to avoid errors with empty macro arguments
| #define DEFINE_MRPT_OBJECT_POST | ( | class_name | ) | DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE(class_name, BASE_IMPEXP ) |
| #define DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE | ( | class_name, | |
| base_name, | |||
| _LINKAGE_ | |||
| ) | DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2(class_name, base_name, _LINKAGE_ class_name) |
| #define DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2 | ( | class_name, | |
| base_name, | |||
| class_name_LINKAGE_ | |||
| ) |
This declaration must be inserted in all CObject classes definition, after the class declaration.
| #define DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_NO_LINKAGE | ( | class_name, | |
| base_name | |||
| ) | DEFINE_MRPT_OBJECT_POST_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name) |
| #define DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE | ( | class_name, | |
| _LINKAGE_ | |||
| ) | DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2(class_name, _LINKAGE_ class_name) |
| #define DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2 | ( | class_name, | |
| class_name_LINKAGE_ | |||
| ) |
This declaration must be inserted in all CObject classes definition, after the class declaration.
| #define DEFINE_MRPT_OBJECT_POST_NO_LINKAGE | ( | class_name | ) | DEFINE_MRPT_OBJECT_POST_CUSTOM_LINKAGE2(class_name, class_name) |
| #define DEFINE_MRPT_OBJECT_PRE | ( | class_name | ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE(class_name, BASE_IMPEXP ) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE | ( | class_name, | |
| base_name | |||
| ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, BASE_IMPEXP ) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE | ( | class_name, | |
| base_name, | |||
| _LINKAGE_ | |||
| ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2(class_name, base_name, _LINKAGE_ class_name) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2 | ( | class_name, | |
| base_name, | |||
| class_name_LINKAGE_ | |||
| ) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_NO_LINKAGE | ( | class_name, | |
| base_name | |||
| ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2(class_name, base_name, class_name) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE | ( | class_name, | |
| _LINKAGE_ | |||
| ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2(class_name, _LINKAGE_ class_name) |
| #define DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2 | ( | class_name, | |
| class_name_LINKAGE_ | |||
| ) | struct class_name_LINKAGE_##Ptr; |
| #define DEFINE_MRPT_OBJECT_PRE_NO_LINKAGE | ( | class_name | ) | DEFINE_MRPT_OBJECT_PRE_CUSTOM_LINKAGE2(class_name, class_name) |
| #define DEFINE_VIRTUAL_MRPT_OBJECT | ( | class_name | ) |
This declaration must be inserted in virtual CSerializable classes definition:
| #define IMPLEMENTS_MRPT_OBJECT | ( | class_name, | |
| base, | |||
| NameSpace | |||
| ) |
This must be inserted in all CObject classes implementation files.
| #define IMPLEMENTS_VIRTUAL_MRPT_OBJECT | ( | class_name, | |
| base_class_name, | |||
| NameSpace | |||
| ) |
This must be inserted as implementation of some required members for virtual CSerializable classes:
| #define IS_CLASS | ( | ptrObj, | |
| class_name | |||
| ) | ((ptrObj)->GetRuntimeClass()==CLASS_ID(class_name)) |
Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is of the given class.
| #define IS_DERIVED | ( | ptrObj, | |
| class_name | |||
| ) | ((ptrObj)->GetRuntimeClass()->derivedFrom(CLASS_ID(class_name))) |
Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is an instance of the given class or any of its derived classes.
|
inline |
This operator enables comparing two smart pointers with "!=" to test whether they don't point to the same object.
Definition at line 307 of file CObject.h.
References stlplus::smart_ptr_base< T, C, COUNTER >::aliases().
|
inline |
This operator enables comparing two smart pointers with "==" to test whether they point to the same object.
Definition at line 301 of file CObject.h.
References stlplus::smart_ptr_base< T, C, COUNTER >::aliases().
| Page generated by Doxygen 1.9.1 for MRPT 1.4.0 SVN: at Fri Sep 3 01:11:30 UTC 2021 |