struct ngraph::DiscreteTypeInfo

Supports three functions, is_type<Type>, as_type<Type>, and as_type_ptr<Type> for type-safe dynamic conversions via static_cast/static_ptr_cast without using C++ RTTI. Type must have a static type_info member and a virtual get_type_info() member that returns a reference to its type_info member. Type information for a type system without inheritance; instances have exactly one type not related to any other type.

#include <type.hpp>

struct DiscreteTypeInfo
{
    // fields

    const char* name;
    uint64_t version;
    const DiscreteTypeInfo* parent;

    // construction

    DiscreteTypeInfo();

    DiscreteTypeInfo(
        const char* _name,
        uint64_t _version,
        const DiscreteTypeInfo* _parent = nullptr
        );

    // methods

    bool is_castable(const DiscreteTypeInfo& target_type) const;
    bool operator < (const DiscreteTypeInfo& b) const;
    bool operator <= (const DiscreteTypeInfo& b) const;
    bool operator > (const DiscreteTypeInfo& b) const;
    bool operator >= (const DiscreteTypeInfo& b) const;
    bool operator == (const DiscreteTypeInfo& b) const;
    bool operator != (const DiscreteTypeInfo& b) const;
};