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

Remove virtual_<> decorator from a type (exposition only).

StripVirtualDecorator<virtual_<T>>

Remove virtual_<> decorator from a type (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 that can be used as virtual arguments.

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<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.

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

Finalize the default registry

initialize

Initialize a registry.

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::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