boost::openmethod

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.

Created with MrDocs