struct ov::Any::EqualityComparable

template <>
struct EqualityComparable
{
    // fields

    static constexpr static const bool value = sizeof(test<T>(nullptr)) == sizeof(char);

    // methods

    static void \*bool conv();

    template <>
    static chardecltype(conv(std::declval<U>()==std::declval<U>())) test();

    template <>
    static long... test();
};

struct ov::Any::EqualityComparable<std::map<T…>>

template <>
struct EqualityComparable<std::map<T...>>
{
    // fields

    static constexpr static const bool value = sizeof(test<std::map<T...>>(nullptr)) == sizeof(char);

    // methods

    static void \*bool conv();

    template <>
    static chardecltype(conv(std::declval<typename U::key_type>()==std::declval<typename U::key_type>()&&std::declval<typename U::mapped_type>()==std::declval<typename U::mapped_type>())) test();

    template <>
    static long... test();
};

struct ov::Any::EqualityComparable<std::vector<T…>>

template <>
struct EqualityComparable<std::vector<T...>>
{
    // fields

    static constexpr static const bool value = sizeof(test<std::vector<T...>>(nullptr)) == sizeof(char);

    // methods

    static void \*bool conv();

    template <>
    static chardecltype(conv(std::declval<typename U::value_type>()==std::declval<typename U::value_type>())) test();

    template <>
    static long... test();
};