5 #ifndef VCCC_MEMORY_TO_ADDRESS_HPP_
6 #define VCCC_MEMORY_TO_ADDRESS_HPP_
18 template<
typename T,
typename =
void>
19 struct has_to_address : std::false_type {};
22 struct has_to_address<T,
void_t<decltype(pointer_traits<T>::
to_address(std::declval<const T&>()))>> : std::true_type {};
25 constexpr
auto to_address_fancy(
const T& p, std::true_type ) noexcept {
29 constexpr
auto to_address_fancy(
const T& p, std::false_type ) noexcept;
44 return detail::to_address_fancy(p, detail::has_to_address<T>{});
52 constexpr
auto to_address_fancy(
const T& p, std::false_type ) noexcept {
constexpr T * to_address(T *p) noexcept
Definition: to_address.hpp:37
constexpr auto to_address(const T &p) noexcept
Definition: to_address.hpp:43
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35