struct ov::Any::Impl<T, typename std::enable_if<!std::is_convertible<T, std::shared_ptr<RuntimeAttribute>>::value>::type>

template <class T>
struct Impl<T, typename std::enable_if<!std::is_convertible<T, std::shared_ptr<RuntimeAttribute>>::value>::type>: public ov::Any::Base
{
    // fields

    T value;

    // construction

    template <typename... Args>
    Impl(Args&&... args);

    // methods

    OPENVINO_RTTI(typeid(T).name());
    const std::type_info& type_info() const;
    const void \* addressof() const;
    Base::Ptr copy() const;
    std::vector<std::type_index> base_type_info() const;
    bool equal(const Base& rhs) const;
    void print(std::ostream& os) const;
    void read(std::istream& is);
};

struct ov::Any::Impl<T, typename std::enable_if<std::is_convertible<T, std::shared_ptr<RuntimeAttribute>>::value>::type>

template <class T>
struct Impl<T, typename std::enable_if<std::is_convertible<T, std::shared_ptr<RuntimeAttribute>>::value>::type>: public ov::Any::Base
{
    // fields

    T runtime_attribute;

    // construction

    Impl(const T& runtime_attribute);

    // methods

    const DiscreteTypeInfo& get_type_info() const;
    std::shared_ptr<RuntimeAttribute> as_runtime_attribute() const;
    bool is_copyable() const;
    Any init(const std::shared_ptr<Node>& node);
    Any merge(const std::vector<std::shared_ptr<Node>>& nodes);
    std::string to_string();
    bool visit_attributes(AttributeVisitor& visitor);
    const std::type_info& type_info() const;
    std::vector<std::type_index> base_type_info() const;
    const void \* addressof() const;
    Base::Ptr copy() const;
    bool equal(const Base& rhs) const;
    void print(std::ostream& os) const;
    void read(std::istream&);
};

struct ov::Any::Impl