Global namespace :: Boost.OpenMethod

# Global namespace

## Namespaces

Name | Description
`boost` | Top namespace of the library.

## boost namespace

Top namespace of the library.

### Namespaces

Name | Description
`openmethod` | Top namespace of the library.

## boost::openmethod namespace

Top namespace of the library.

### Namespaces

Name | Description
`aliases` | Aliases for the most frequently used types in the library.
`policies` | Namespace for policies.

### Types

Name | Description
`LightweightOutputStream` | Blueprint for a lightweight output stream (exposition only).
`StripVirtualDecorator` | Removes the virtual_<> decorator, if present (exposition only).
`StripVirtualDecorator<virtual_<T>>` | Removes the virtual_<> decorator (exposition only).
`VirtualTraits` | Blueprint for a specialization of `virtual_traits` (exposition only).
`ambiguous_call` | Ambiguous call
`bad_call` | No valid overrider
`default_registry` | Default registry.
`final_error` | Static and dynamic type mismatch in "final" construct
`indirect_registry` | Indirect registry.
`inplace_vptr_base` | Embed a v‐table pointer in a class.
`inplace_vptr_derived` | Adjust the v‐table pointer embedded in a class.
`inplace_vptr_derived<Class, Base>` | Specialization for a single base class.
`inplace_vptr_derived<Class, Base1, Base2, MoreBases...>` | Specialization for multiple base classes.
`method` | Implement a method
`method<Id, ReturnType(Parameters...), Registry>` | Method with a specific id, signature and return type
`missing_base` | Missing base.
`missing_class` | Missing class.
`n2216` | N2216 ambiguity resolution.
`no_overrider` | No overrider for virtual tuple
`not_initialized` | Registry not initialized
`odr_violation` | One Definition Rule violation.
`openmethod_error` | Base class for all OpenMethod errors.
`registry` | Methods, classes and policies.
`trace` | Enable `initialize` tracing.
`use_classes` | Add classes to a registry
`virtual_` | Decorator for virtual parameters.
`virtual_ptr` | Wide pointer combining pointers to an object and its v‐table
`virtual_ptr<SmartPtr, Registry>` | Wide pointer combining a smart pointer to an object and a pointer to its v‐table
`virtual_traits` | Traits for types used as virtual parameters.
`virtual_traits<boost::intrusive_ptr<Class>, Registry>` | Specialize virtual_traits for boost::intrusive_ptr.
`virtual_traits<std::shared_ptr<Class>, Registry>` | Specialize virtual_traits for std::shared_ptr by value.
`virtual_traits<std::unique_ptr<Class>, Registry>` | Specialize virtual_traits for std::unique_ptr by value.
`virtual_traits<virtual_ptr<Class, Registry>, Registry>` | Specialize virtual_traits for `virtual_ptr`.
`virtual_traits<Class&, Registry>` | Specialize virtual_traits for lvalue reference types.
`virtual_traits<boost::intrusive_ptr<Class> const&, Registry>` | Specialize virtual_traits for const boost::intrusive_ptr&.
`virtual_traits<std::shared_ptr<Class> const&, Registry>` | Specialize virtual_traits for std::shared_ptr by reference.
`virtual_traits<virtual_ptr<Class, Registry> const&, Registry>` | Specialize virtual_traits for `virtual_ptr`.
`virtual_traits<Class&&, Registry>` | Specialize virtual_traits for xvalue reference types.
`virtual_traits<Class*, Registry>` | Specialize virtual_traits for pointer types.
`boost_intrusive_virtual_ptr` | Alias for a `virtual_ptr<boost::intrusive_ptr<T>>`.
`shared_virtual_ptr` | Alias for a `virtual_ptr<std::shared_ptr<T>>`.
`type_id` | Type used to identify a class.
`unique_virtual_ptr` | Alias for a `virtual_ptr<std::unique_ptr<T>>`.
`vptr_type` | Alias to v‐table pointer type.

### Functions

Name | Description
`final_virtual_ptr` | `final_virtual_ptr` overloads
`finalize` | Release resources held by registry.
`initialize` | Initialize a registry.
`make_boost_intrusive_virtual` | Create a new object and return a `boost_intrusive_virtual_ptr` to it.
`make_shared_virtual` | Create a new object and return a `shared_virtual_ptr` to it.
`make_unique_virtual` | Create a new object and return a `unique_virtual_ptr` to it.
`operator==` | Compare two `virtual_ptr`s for equality.
`operator!=` | Compare two `virtual_ptr`s for inequality.

### Variables

Name | Description
`IsPolymorphic` | Test if argument is polymorphic (exposition only)
`IsSmartPtr` | Test if argument is a smart pointer (exposition only)
`SameSmartPtr` | Test if arguments are same kind of smart pointers (exposition only)

### Deduction Guides

Name | Description
`virtual_ptr<Class, boost::openmethod::default_registry>` | Construct a `virtual_ptr` from a lvalue reference.
`virtual_ptr<Class, boost::openmethod::default_registry>` | Construct a `virtual_ptr` from a xvalue reference.

## boost::openmethod::aliases namespace

Aliases for the most frequently used types in the library.

### Using Declarations

Name
`boost_intrusive_virtual_ptr`
`final_virtual_ptr`
`inplace_vptr_base`
`inplace_vptr_derived`
`make_boost_intrusive_virtual`
`make_shared_virtual`
`make_unique_virtual`
`shared_virtual_ptr`
`unique_virtual_ptr`
`virtual_`
`virtual_ptr`

## boost::openmethod::policies namespace

Namespace for policies.

### Types

Name | Description
`ErrorHandlerFn` | Blueprint for `error_handler` metafunctions (exposition only).
`InitializeClass` | Class information for initializing a policy (exposition only).
`InitializeContext` | Context for initializing a policy (exposition only).
`OutputFn` | Blueprint for `output` metafunctions (exposition only).
`RttiFn` | Blueprint for `rtti` metafunctions (exposition only).
`TypeHashFn` | Blueprint for `type_hash` metafunctions (exposition only).
`VptrFn` | Blueprint for `vptr` metafunctions (exposition only).
`default_error_handler` | Calls a std::function with the error.
`deferred_static_rtti` | Policy for deferred type id collection.
`error_handler` | Policy for error handling.
`fast_perfect_hash` | Hash type ids using a fast, perfect hash function.
`indirect_vptr` | Policy to add an indirection to pointers to v‐tables.
`output` | Policy for writing diagnostics and trace.
`rtti` | Policy for manipulating type information.
`runtime_checks` | Policy for post‐initialize runtime checks.
`static_rtti` | Minimal implementation of the `rtti` policy.
`std_rtti` | Implements the `rtti` policy using standard RTTI.
`stderr_output` | `Writes` to the C standard error stream.
`throw_error_handler` | Throws error as an exception.
`type_hash` | Policy for hashing type ids.
`vptr` | Policy for v‐table pointer acquisition.
`vptr_map` | Stores v‐table pointers in a map keyed by `type_id`s.
`vptr_vector` | Stores v‐table pointers in a vector.

## See Also

`registry` for a complete explanation of registries and policies.

Created with MrDocs