|
template<class T > |
auto | make_not_null (T &&t) noexcept |
|
template<class T , class U > |
auto | operator== (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get()==rhs.get())) -> decltype(lhs.get()==rhs.get()) |
|
template<class T , class U > |
auto | operator!= (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get() !=rhs.get())) -> decltype(lhs.get() !=rhs.get()) |
|
template<class T , class U > |
auto | operator< (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get()< rhs.get())) -> decltype(lhs.get()< rhs.get()) |
|
template<class T , class U > |
auto | operator<= (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get()<=rhs.get())) -> decltype(lhs.get()<=rhs.get()) |
|
template<class T , class U > |
auto | operator> (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get() > rhs.get())) -> decltype(lhs.get() > rhs.get()) |
|
template<class T , class U > |
auto | operator>= (const not_null< T > &lhs, const not_null< U > &rhs) noexcept(noexcept(lhs.get() >=rhs.get())) -> decltype(lhs.get() >=rhs.get()) |
|
template<class T , class U > |
std::ptrdiff_t | operator- (const not_null< T > &, const not_null< U > &)=delete |
|
template<class T > |
not_null< T > | operator- (const not_null< T > &, std::ptrdiff_t)=delete |
|
template<class T > |
not_null< T > | operator+ (const not_null< T > &, std::ptrdiff_t)=delete |
|
template<class T > |
not_null< T > | operator+ (std::ptrdiff_t, const not_null< T > &)=delete |
|
template<class T , class U > |
std::ptrdiff_t | operator- (const strict_not_null< T > &, const strict_not_null< U > &)=delete |
|
template<class T > |
strict_not_null< T > | operator- (const strict_not_null< T > &, std::ptrdiff_t)=delete |
|
template<class T > |
strict_not_null< T > | operator+ (const strict_not_null< T > &, std::ptrdiff_t)=delete |
|
template<class T > |
strict_not_null< T > | operator+ (std::ptrdiff_t, const strict_not_null< T > &)=delete |
|
template<class T > |
auto | make_strict_not_null (T &&t) noexcept |
|
template<class TCONTAINER > |
constexpr auto | size (TCONTAINER &&container) -> decltype(container.size()) |
|
template<class T , size_t SIZE> |
constexpr size_t | size (const T(&)[SIZE]) noexcept |
|
template<class TCONTAINER > |
constexpr auto | data (TCONTAINER &&container) -> decltype(container.data()) |
|
template<class T , size_t SIZE> |
constexpr T * | data (T(&array_value)[SIZE]) noexcept |
|
template<class TELEMENT > |
constexpr const TELEMENT * | data (std::initializer_list< TELEMENT > l) noexcept |
|
template<class TELEMENT > |
constexpr span< TELEMENT > | make_span (TELEMENT *ptr, typename span< TELEMENT >::size_type count) |
|
template<class TELEMENT > |
constexpr span< TELEMENT > | make_span (TELEMENT *first, TELEMENT *last) |
|
template<class TELEMENT , std::size_t N> |
constexpr span< TELEMENT, N > | make_span (TELEMENT(&arr)[N]) noexcept |
|
template<class TCONTAINER , typename std::enable_if< !std::is_array< typename std::remove_reference< TCONTAINER >::type >::value &&std::is_pointer< decltype(data(std::declval< TCONTAINER >()))>::value &&std::is_convertible< decltype(size(std::declval< TCONTAINER >())), size_t >::value , ::type * = nullptr> |
constexpr span< typename _make_span_value_type< TCONTAINER >::type > | make_span (TCONTAINER &&cont) |
|