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

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.

method

Implement a method

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_traits

Traits for types used as virtual parameters.

Type Aliases

Name

Description

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)

Created with MrDocs