.. _equality_comparable_with: ****************************** meta::equality_comparable_with ****************************** Defined in header ````. .. code-block:: cpp template concept equality_comparable_with = meta::equality_comparable && meta::equality_comparable && meta::common_reference_with< std::remove_reference_t const&, std::remove_reference_t const&> && meta::equality_comparable< meta::common_reference_t< std::remove_reference_t const&, std::remove_reference_t const&>> && meta::weakly_equality_comparable_with; Pre-C++20 implementation of the :concept:`std::equality_comparable_with ` concept. ---- Concept emulation ================= .. code-block:: cpp namespace mgs { namespace meta { template struct is_equality_comparable_with { /* ... */ }; template constexpr auto is_equality_comparable_with_v = is_equality_comparable_with::value; template >> using equality_comparable_with = T; } // namespace meta } // namespace mgs Example ======= .. code-block:: cpp #include using namespace mgs::meta; static_assert(is_equality_comparable_with_v, ""); static_assert(!is_equality_comparable_with_v, ""); See also ======== * :ref:`weakly_equality_comparable_with` * :ref:`equality_comparable` * :ref:`common_reference_with` * :ref:`common_reference`