5 #ifndef VCCC_RANGES_CBEGIN_HPP_
6 #define VCCC_RANGES_CBEGIN_HPP_
21 struct cbegin_niebloid {
22 template<
typename T, std::enable_if_t<disjunction<
23 std::is_lvalue_reference<T>,
24 enable_borrowed_range<std::remove_cv_t<T>>
26 constexpr
auto operator()(T&& t)
const {
51 using namespace niebloid;
std::enable_if_t< input_iterator< I >::value, std::conditional_t< detail::constant_iterator< I >::value, I, basic_const_iterator< I > > > const_iterator
Definition: basic_const_iterator.hpp:377
constexpr VCCC_INLINE_OR_STATIC detail::cbegin_niebloid cbegin
returns an iterator to the beginning of a read-only range
Definition: cbegin.hpp:46
constexpr auto & possibly_const_range(R &r) noexcept
Definition: possibly_const_range.hpp:35
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35