Any++
Loading...
Searching...
No Matches
ANY_META_CLASS macros for crosscast

Macros to define static runtime type data for a model. Only neccessary for DLL and crosscast scenarios. More...

Macros

#define ANY_META_CLASS_FWD(...)
 Declare access to the meta data for a specific model any. Must be in global namespace.
#define ANY_META_CLASS(...)
 Define the meta data for a specific model any. Must be in global namespace.
#define ANY_META_CLASS_STATIC(...)
#define ANY_REGISTER_MODEL(class_, interface_, ...)
 Register a model class for a specific any interface. Must be in global namespace.

Detailed Description

Macros to define static runtime type data for a model. Only neccessary for DLL and crosscast scenarios.

Macro Definition Documentation

◆ ANY_META_CLASS

#define ANY_META_CLASS ( ...)

Define the meta data for a specific model any. Must be in global namespace.

Parameters
...Type of the model

◆ ANY_META_CLASS_FWD

#define ANY_META_CLASS_FWD ( ...)

Declare access to the meta data for a specific model any. Must be in global namespace.

Parameters
export_To supply an export macro in a DLL scenario
...Type of the model

◆ ANY_META_CLASS_STATIC

#define ANY_META_CLASS_STATIC ( ...)
Value:
ANY_META_CLASS_FWD(, __VA_ARGS__) \
ANY_META_CLASS(__VA_ARGS__)
#define ANY_META_CLASS_FWD(...)
Declare access to the meta data for a specific model any. Must be in global namespace.
Definition anyxx.hpp:4301

◆ ANY_REGISTER_MODEL

#define ANY_REGISTER_MODEL ( class_,
interface_,
... )
Value:
namespace { \
static auto __ = anyxx::bind_v_table_to_meta_data< \
interface_##_v_table _detail_ANYXX_OPTIONAL_TEMPLATE_ARGS(__VA_ARGS__), \
ANYXX_UNPAREN(class_)>(); \
}

Register a model class for a specific any interface. Must be in global namespace.

Parameters
class_The model class with fully qualified name. Must be parenthesized
interface_Name of the any (without any_ prefix).
...Optional template parameters for the model class.

See also Casts.

Examples
21_Tree_any_borrow_as.cpp.