VCCC  2024.05
VisualCamp Common C++ library
cdata.hpp
Go to the documentation of this file.
1 //
2 // Created by YongGyu Lee on 3/27/24.
3 //
4 
5 #ifndef VCCC_RANGES_CDATA_HPP_
6 #define VCCC_RANGES_CDATA_HPP_
7 
8 #include <type_traits>
9 
13 #include "vccc/__ranges/data.hpp"
18 
19 namespace vccc {
20 namespace ranges {
21 namespace detail {
22 
23 struct cdata_niebloid {
24  template<typename T, std::enable_if_t<disjunction<
25  std::is_lvalue_reference<T>,
26  enable_borrowed_range<std::remove_cv_t<T>>
27  >::value, int> = 0>
28  constexpr std::remove_reference_t<range_const_reference_t<T>>* operator()(T&& t) const {
30  }
31 };
32 
33 } // namespace detail
34 
35 namespace niebloid {
36 
39 
40 VCCC_INLINE_OR_STATIC constexpr detail::cdata_niebloid cdata{};
41 
43 
44 } // namespace niebloid
45 using namespace niebloid;
46 
47 } // namespace ranges
48 } // namespace vccc
49 
50 #endif // VCCC_RANGES_CDATA_HPP_
constexpr VCCC_INLINE_OR_STATIC detail::cdata_niebloid cdata
Definition: cdata.hpp:40
constexpr VCCC_INLINE_OR_STATIC detail::data_niebloid data
obtains a pointer to the beginning of a contiguous range
Definition: data.hpp:103
constexpr auto & possibly_const_range(R &r) noexcept
Definition: possibly_const_range.hpp:35
constexpr auto as_const_pointer(const T *p) noexcept
Definition: as_const_pointer.hpp:15
#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