Header file range/v3/utility/copy.hpp

#include <range/v3/range_fwd.hpp>

#include <range/v3/utility/concepts.hpp>

#include <range/v3/utility/static_const.hpp>

namespace ranges
{
    inline namespace v3
    {
        namespace aux
        {
            struct copy_fn
            : ranges::v3::copy_tag
            {
                template <typename T, int _concept_requires_32 = 42, typename std::enable_if<(_concept_requires_32==43)||(Constructible<detail::decay_t<T>, T&&>()), int>::type=0>
                detail::decay_t<T> operator()(T&& t) const;
            };
            
            inline namespace 
            {
                constexpr auto& copy = static_const<copy_fn>::value;
            }
            
            template <typename T, int _concept_requires_46 = 42, typename std::enable_if<(_concept_requires_46==43)||(Constructible<detail::decay_t<T>, T&&>()), int>::type=0>
            detail::decay_t<T> operator|(T&& t, copy_fn);
        }
    }
}

Variable ranges::v3::aux::copy

constexpr auto& copy = static_const<copy_fn>::value;

copy_fn


Function template ranges::v3::aux::operator|<T, _concept_requires_46>

template <typename T, int _concept_requires_46 = 42, typename std::enable_if<(_concept_requires_46==43)||(Constructible<detail::decay_t<T>, T&&>()), int>::type=0>
detail::decay_t<T> operator|(T&& t, copy_fn);

copy_fn