boost::openmethod::virtual_ptr<Class, Registry>

Reject wrapping a virtual_any in a virtual_ptr.

Synopsis

Declared in <boost/openmethod/interop/virtual_any.hpp>

template<
    class Class,
    class Registry>
requires IsVirtualAny<std::remove_cv_t<Class>>
class virtual_ptr<Class, Registry>;

Description

A virtual_any is already a wide type: it carries the v‐table pointer for the value it contains. Wrapping it in a virtual_ptr would produce a wide pointer whose v‐table is the contained value's, but whose static type is the virtual_any ‐ which is deliberately not a registered class. This specialization rejects the combination at compile time, which also covers final_virtual_ptr, since that instantiates the virtual_ptr it returns.

Template Parameters

Name

Description

Class

A specialization of virtual_any, possibly const.

Registry

A registry.

Created with MrDocs