XS-librangeV3
view release on metacpan or search on metacpan
range-v3-0.12.0/doc/release_notes.md view on Meta::CPAN
by default:
- `ranges::begin`
- `ranges::end`
- `ranges::rbegin`
- `ranges::rend`
- `ranges::cbegin`
- `ranges::cend`
- `ranges::crbegin`
- `ranges::crend`
- `ranges::data`
- `ranges::cdata`
* Iterators may specify an `iterator_concept` type alias in addition to
`iterator_category` -- either as a nested type or as a member of a
`std::iterator_traits` specialization -- to denote conformance to the C++20
iterator concepts as distinct from the C++98 iterator requirements.
(See [P1037 "Deep Integration of the Ranges TS"](http://wg21.link/p1037)
for more information.)
* The `ranges::value_type` trait has been renamed to `readable_traits`.
* The `ranges::difference_type` trait has been renamed to `incrementable_traits`.
* The `ranges::iterator_category` trait has been deprecated. Specialize
`std::iterator_traits` to non-intrusively specify an iterator's category
range-v3-0.12.0/include/range/v3/range/primitives.hpp view on Meta::CPAN
};
template<typename R>
using _t = decltype(fn{}(declval(R &&)));
} // namespace _data_
/// \endcond
RANGES_INLINE_VARIABLE(_data_::fn, data)
/// \cond
namespace _cdata_
{
struct fn
{
template<typename R>
constexpr _data_::_t<R const &> operator()(R const & r) const
noexcept(noexcept(ranges::data(r)))
{
return ranges::data(r);
}
template<typename R>
constexpr _data_::_t<R const> operator()(R const && r) const
noexcept(noexcept(ranges::data((R const &&)r)))
{
return ranges::data((R const &&)r);
}
};
} // namespace _cdata_
/// \endcond
/// \ingroup group-range
/// \param r
/// \return The result of calling `ranges::data` with a const-qualified
/// (lvalue or rvalue) reference to `r`.
RANGES_INLINE_VARIABLE(_cdata_::fn, cdata)
/// \cond
namespace _empty_
{
// clang-format off
/// \concept has_member_empty_
/// \brief The \c has_member_empty_ concept
template<typename T>
CPP_requires(has_member_empty_,
requires(T && t) //
range-v3-0.12.0/include/range/v3/range/primitives.hpp view on Meta::CPAN
} // namespace _empty_
/// \endcond
/// \ingroup group-range
/// \return true if and only if range contains no elements.
RANGES_INLINE_VARIABLE(_empty_::fn, empty)
namespace cpp20
{
// Specialize this is namespace ranges::
using ranges::cdata;
using ranges::data;
using ranges::disable_sized_range;
using ranges::empty;
using ranges::size;
} // namespace cpp20
} // namespace ranges
#include <range/v3/detail/epilogue.hpp>
#endif
( run in 1.369 second using v1.01-cache-2.11-cpan-6aa56a78535 )