struct ov::DiscreteTypeInfo¶
Overview¶
Type information for a type system without inheritance; instances have exactly one type not related to any other type. More…
#include <type.hpp>
struct DiscreteTypeInfo
{
    // fields
    const char \* name;
    uint64_t version;
    const char \* version_id;
    const DiscreteTypeInfo \* parent;
    // construction
    DiscreteTypeInfo();
    DiscreteTypeInfo(const DiscreteTypeInfo&);
    DiscreteTypeInfo(DiscreteTypeInfo&&);
    DiscreteTypeInfo(
        const char \* _name,
        const char \* _version_id,
        const DiscreteTypeInfo \* _parent = nullptr
        );
    DiscreteTypeInfo(
        const char \* _name,
        uint64_t _version,
        const DiscreteTypeInfo \* _parent = nullptr
        );
    DiscreteTypeInfo(
        const char \* _name,
        uint64_t _version,
        const char \* _version_id,
        const DiscreteTypeInfo \* _parent = nullptr
        );
    // methods
    DiscreteTypeInfo& operator = (const DiscreteTypeInfo&);
    OPENVINO_SUPPRESS_DEPRECATED_END bool is_castable(const DiscreteTypeInfo& target_type) const;
    std::string get_version() 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;
    operator std::string () const;
    size_t hash() const;
    size_t hash();
};Detailed Documentation¶
Type information for a type system without inheritance; instances have exactly one type not related to any other type.
Supports three functions, ov::is_type<Type>, ov::as_type<Type>, and ov::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.