Classes | Typedefs | Functions | Variables
cpp17 Namespace Reference

C++ STL code present in C++17. More...

Classes

struct  array
 
struct  conjunction
 A logical AND on the template parameters. More...
 
struct  disjunction
 A logical OR on the template parameters. More...
 
struct  negation
 Negate a bool_constant. More...
 
struct  void_type
 Mark a return type as being "void". In C++17 void is a regular type under certain circumstances, so this can be replaced by void then. More...
 

Typedefs

template<bool B>
using bool_constant = std::integral_constant< bool, B >
 A compile-time boolean. More...
 
template<typename... Ts>
using void_t = void
 Given a set of types, returns void More...
 
template<class T , class... Args>
using is_constructible_t = typename std::is_constructible< T, Args... >::type
 

Functions

template<typename InputIter1 , typename InputIter2 , typename BinaryPred = detail::Equal<>>
constexpr bool equal (InputIter1 first1, InputIter1 last1, InputIter2 first2, BinaryPred pred=detail::Equal<>{})
 
template<typename InputIter1 , typename InputIter2 , typename BinaryPred = std::less_equal<>>
constexpr bool lexicographical_compare (InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2, BinaryPred pred=std::less_equal<>{})
 
template<class T , size_t Size>
constexpr bool operator== (const array< T, Size > &x, const array< T, Size > &y)
 
template<class T , size_t Size>
constexpr bool operator!= (const array< T, Size > &lhs, const array< T, Size > &rhs)
 
template<class T , size_t Size>
constexpr bool operator< (const array< T, Size > &lhs, const array< T, Size > &rhs)
 
template<class T , size_t Size>
constexpr bool operator> (const array< T, Size > &lhs, const array< T, Size > &rhs)
 
template<class T , size_t Size>
constexpr bool operator<= (const array< T, Size > &lhs, const array< T, Size > &rhs)
 
template<class T , size_t Size>
constexpr bool operator>= (const array< T, Size > &lhs, const array< T, Size > &rhs)
 
template<typename T >
std::ostreamoperator<< (std::ostream &os, const array< T, 0 > &)
 
template<typename T , size_t N>
std::ostreamoperator<< (std::ostream &os, const array< T, N > &a)
 
template<class T , class Compare = std::less<>>
constexpr const T & clamp (const T &v, const T &lo, const T &hi, Compare comp=Compare())
 Clamps the value between lo and hi. More...
 
template<typename T >
constexpr const T & as_const (const T &t) noexcept
 Returns a const reference to its argument.
 

Variables

template<typename T , typename U >
constexpr bool is_same_v = std::is_same<T, U>::value
 Variable template for is_same.
 
template<typename T >
constexpr bool is_lvalue_reference_v = std::is_lvalue_reference<T>::value
 
template<typename T >
constexpr bool is_rvalue_reference_v = std::is_rvalue_reference<T>::value
 
template<typename T >
constexpr bool is_reference_v = std::is_reference<T>::value
 
template<class T , class... Args>
constexpr bool is_constructible_v = std::is_constructible<T, Args...>::value
 
template<class T , class... Args>
constexpr bool is_trivially_constructible_v
 
template<class T , class... Args>
constexpr bool is_nothrow_constructible_v
 
template<class T >
constexpr bool is_default_constructible_v
 
template<class T >
constexpr bool is_trivially_default_constructible_v
 
template<class T >
constexpr bool is_nothrow_default_constructible_v
 
template<class T >
constexpr bool is_copy_constructible_v = std::is_copy_constructible<T>::value
 
template<class T >
constexpr bool is_trivially_copy_constructible_v
 
template<class T >
constexpr bool is_nothrow_copy_constructible_v
 
template<class T >
constexpr bool is_move_constructible_v = std::is_move_constructible<T>::value
 
template<class T >
constexpr bool is_trivially_move_constructible_v
 
template<class T >
constexpr bool is_nothrow_move_constructible_v
 
template<class T , class U >
constexpr bool is_assignable_v = std::is_assignable<T, U>::value
 
template<class T , class U >
constexpr bool is_trivially_assignable_v
 
template<class T , class U >
constexpr bool is_nothrow_assignable_v
 
template<class From , class To >
constexpr bool is_convertible_v = std::is_convertible<From, To>::value
 
template<class T >
constexpr bool is_copy_assignable_v = std::is_copy_assignable<T>::value
 
template<class T >
constexpr bool is_trivially_copy_assignable_v
 
template<class T >
constexpr bool is_nothrow_copy_assignable_v
 
template<class T >
constexpr bool is_move_assignable_v = std::is_move_assignable<T>::value
 
template<class T >
constexpr bool is_trivially_move_assignable_v
 
template<class T >
constexpr bool is_nothrow_move_assignable_v
 
template<class Base , class Derived >
constexpr bool is_base_of_v = std::is_base_of<Base, Derived>::value
 
template<class T >
constexpr bool is_unsigned_v = std::is_unsigned<T>::value
 
template<class T >
constexpr bool is_arithmetic_v = std::is_arithmetic<T>::value
 
template<class T >
constexpr bool is_floating_point_v = std::is_floating_point<T>::value
 
template<class T >
constexpr bool is_integral_v = std::is_integral<T>::value
 
template<class T >
constexpr bool is_fundamental_v = std::is_fundamental<T>::value
 
template<class... B>
constexpr bool conjunction_v = conjunction<B...>::value
 
template<class... B>
constexpr bool disjunction_v = disjunction<B...>::value
 

Detailed Description

C++ STL code present in C++17.

Variable Documentation

◆ conjunction_v

template<class... B>
constexpr bool cpp17::conjunction_v = conjunction<B...>::value

◆ disjunction_v

template<class... B>
constexpr bool cpp17::disjunction_v = disjunction<B...>::value