.. _semiregular: ***************** meta::semiregular ***************** Defined in header ````. .. code-block:: cpp template concept semiregular = meta::copyable && meta::default_constructible; Pre-C++20 implementation of the :iterconcept:`semiregular` concept. ---- Concept emulation ================= .. code-block:: cpp namespace mgs { namespace meta { template struct is_semiregular { /* ... */ }; template constexpr auto is_semiregular_v = is_semiregular::value; template >> using semiregular = T; } // namespace meta } // namespace mgs Example ======= .. code-block:: cpp #include using namespace mgs::meta; // no equality operator struct semiregular {}; static_assert(is_semiregular_v>, ""); static_assert(is_semiregular_v, ""); static_assert(!is_semiregular_v, ""); See also ======== * :ref:`copyable` * :ref:`default_constructible`