.. _move_constructible: ************************ meta::move_constructible ************************ Defined in header ````. .. code-block:: cpp template concept move_constructible = meta::constructible_from && meta::convertible_to; Pre-C++20 implementation of the :concept:`move_constructible` concept. ---- Concept emulation ================= .. code-block:: cpp namespace mgs { namespace meta { template struct is_move_constructible { /* ... */ }; template constexpr auto is_move_constructible_v = is_move_constructible::value; template >> using move_constructible = T; } // namespace meta } // namespace mgs Example ======= .. code-block:: cpp #include using namespace mgs::meta; struct non_move_constructible { non_move_constructible(non_move_constructible&&) = delete; } static_assert(is_move_constructible_v, ""); static_assert(is_move_constructible_v>, ""); static_assert(!is_move_constructible_v, ""); See also ======== * :ref:`constructible_from` * :ref:`convertible_to`