Global namespace
boost namespace
boost::openmethod namespace
Top namespace of the library.
Namespaces
Name |
Description |
Aliases for the most frequently used types in the library. |
|
Namespace for policies. |
Types
Name |
Description |
Blueprint for a lightweight output stream (exposition only). |
|
Removes the virtual_<> decorator, if present (exposition only). |
|
Removes the virtual_<> decorator (exposition only). |
|
Blueprint for a specialization of |
|
Ambiguous call |
|
No valid overrider |
|
Default registry. |
|
Static and dynamic type mismatch in "final" construct |
|
Indirect registry. |
|
Embed a v‐table pointer in a class. |
|
Adjust the v‐table pointer embedded in a class. |
|
Specialization for a single base class. |
|
|
Specialization for multiple base classes. |
Implement a method |
|
|
Method with a specific id, signature and return type |
Missing base. |
|
Missing class. |
|
N2216 ambiguity resolution. |
|
No overrider for virtual tuple |
|
Registry not initialized |
|
One Definition Rule violation. |
|
Base class for all OpenMethod errors. |
|
Methods, classes and policies. |
|
Enable |
|
Add classes to a registry |
|
Decorator for virtual parameters. |
|
Wide pointer combining pointers to an object and its v‐table |
|
Wide pointer combining a smart pointer to an object and a pointer to its v‐table |
|
Traits for types used as virtual parameters. |
|
|
Specialize virtual_traits for std::shared_ptr by value. |
|
Specialize virtual_traits for std::unique_ptr by value. |
|
Specialize virtual_traits for |
Specialize virtual_traits for lvalue reference types. |
|
|
Specialize virtual_traits for std::shared_ptr by reference. |
|
Specialize virtual_traits for |
Specialize virtual_traits for xvalue reference types. |
|
Specialize virtual_traits for pointer types. |
|
Alias for a |
|
Type used to identify a class. |
|
Alias for a |
|
Alias to v‐table pointer type. |
Functions
Name |
Description |
|
|
Release resources held by registry. |
|
Initialize a registry. |
|
Create a new object and return a |
|
Create a new object and return a |
|
Compare two `virtual_ptr`s for equality. |
|
Compare two `virtual_ptr`s for inequality. |
Variables
Name |
Description |
Test if argument is polymorphic (exposition only) |
|
Test if argument is a smart pointer (exposition only) |
|
Test if arguments are same kind of smart pointers (exposition only) |
Deduction Guides
Name |
Description |
|
Construct a |
|
Construct a |
boost::openmethod::aliases namespace
Aliases for the most frequently used types in the library.
boost::openmethod::policies namespace
Namespace for policies.
Types
Name |
Description |
Blueprint for |
|
Class information for initializing a policy (exposition only). |
|
Context for initializing a policy (exposition only). |
|
Blueprint for |
|
Blueprint for |
|
Blueprint for |
|
Blueprint for |
|
Calls a std::function with the error. |
|
Policy for deferred type id collection. |
|
Policy for error handling. |
|
Hash type ids using a fast, perfect hash function. |
|
Policy to add an indirection to pointers to v‐tables. |
|
Policy for writing diagnostics and trace. |
|
Policy for manipulating type information. |
|
Policy for post‐initialize runtime checks. |
|
Minimal implementation of the |
|
Implements the |
|
|
|
Throws error as an exception. |
|
Policy for hashing type ids. |
|
Policy for v‐table pointer acquisition. |
|
Stores v‐table pointers in a map keyed by `type_id`s. |
|
Stores v‐table pointers in a vector. |