.. _output_range: ****************** meta::output_range ****************** Defined in header ````. .. code-block:: cpp template concept output_range = meta::range && meta::output_iterator, T>; Pre-C++20 implementation of the :rangeconcept:`output_range` concept. ---- Concept emulation ================= .. code-block:: cpp namespace mgs { namespace meta { template struct is_output_range { /* ... */ }; template constexpr auto is_output_range_v = is_output_range::value; template >> using output_range = R; } // namespace meta } // namespace mgs Example ======= .. code-block:: cpp #include using namespace mgs::meta; struct input_range { char const* begin(); char const* end(); }; static_assert(is_output_range_v, ""); static_assert(is_output_range_v, ""); static_assert(!is_output_range_v, ""); See also ======== * :ref:`range` * :ref:`output_iterator` * :ref:`iterator_t`