boost::openmethod::IsPolymorphic

Test if argument is polymorphic (exposition only)

Synopsis

Declared in <boost/openmethod/core.hpp>

template<
    class Class,
    class Registry,
    class... Deferred>
constexpr bool IsPolymorphic = Registry::rtti::template is_polymorphic<Class>;

Description

Evaluates to true if Class is a polymorphic type, according to the rtti policy of Registry.

If Registry's rtti policy is std_rtti`, this is the same as std::is_polymorphic. However, other rtti policies may have a different view of what is polymorphic.

Template Parameters

Name

Description

Class

A class type.

Registry

A registry.

Deferred

Ignored. A constraint on a member template of virtual_ptr names it here so that the check depends on the member's own template parameter: a default template argument that does not is evaluated when virtual_ptr<Class> itself is instantiated, and Class may still be incomplete then ‐ a virtual_ptr<Node> member inside Node. The same constraints test pointer convertibility first, in a defaulted parameter of its own, so that a candidate that fails it ‐ the copy assignment of that member, which overload resolution tries here too ‐ never gets this far.

Created with MrDocs