5#ifndef DUNE_COMMON_STD_MEMORY_HH
6#define DUNE_COMMON_STD_MEMORY_HH
15#if __cpp_lib_to_address >= 201711L
24constexpr T* toAddressImpl (T* p, Dune::PriorityTag<2>)
noexcept
26 static_assert(!std::is_function_v<T>);
31constexpr auto toAddressImpl (
const T& p, Dune::PriorityTag<1>)
noexcept
32 ->
decltype(std::pointer_traits<T>::to_address(p))
34 return std::pointer_traits<T>::to_address(p);
38constexpr auto toAddressImpl (
const T& p, Dune::PriorityTag<0>)
noexcept
40 return toAddressImpl(p.operator->(), Dune::PriorityTag<3>{});
Utilities for type computations, constraining overloads, ...
Namespace for features backported from new C++ standards.
Definition default_accessor.hh:10
constexpr auto to_address(T &&p) noexcept
Obtain the address represented by p without forming a reference to the object pointed to by p.
Definition memory.hh:47
Helper class for tagging priorities.
Definition typeutilities.hh:73