|
| 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) |
| |