Type Traits
/* Customization point that can be customized to indicate that an iterator type
Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory. */template <typename Iterator> struct thrust::proclaim_contiguous_iterator;
/* std::integral_constant
whose value is (... && Bs)
. */template <bool... Bs> struct thrust::conjunction_value;
/* std::integral_constant
whose value is (... || Bs)
. */template <bool... Bs> struct thrust::disjunction_value;
/* std::integral_constant
whose value is !Bs
. */template <bool B> struct thrust::negation_value;
/* _UnaryTypeTrait_ that removes const-volatile qualifiers and references from T
. Equivalent to remove_cv_t<remove_reference_t<T>>
. */template <typename T> struct thrust::remove_cvref;
template <typename...> struct thrust::voider;
/* A compile-time sequence of _integral constants_ of type T
with values Is...
. */template <typename T, T... Is> using thrust::integer_sequence = see below;
/* A compile-time sequence of type std::size_t with values Is...
. */template <std::size_t... Is> using thrust::index_sequence = see below;
/* Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type T
. */template <typename T, std::size_t N> using thrust::make_integer_sequence = see below;
/* Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type std::size_t. */template <std::size_t N> using thrust::make_index_sequence = see below;
/* Create a new integer_sequence
with elements N - 1, N - 2, N - 3, ..., 0
. */template <typename T, std::size_t N> using thrust::make_reversed_integer_sequence = see below;
/* Create a new index_sequence
with elements N - 1, N - 2, N - 3, ..., 0
. */template <std::size_t N> using thrust::make_reversed_index_sequence = see below;
/* Add a new element to the front of an integer_sequence
. */template <typename T, T Value, typename Sequence> using thrust::integer_sequence_push_front = see below;
/* Add a new element to the back of an integer_sequence
. */template <typename T, T Value, typename Sequence> using thrust::integer_sequence_push_back = see below;
/* _UnaryTypeTrait_ that returns true_type
if Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory, and false_type
otherwise. */template <typename Iterator> using thrust::is_contiguous_iterator = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is an _ExecutionPolicy_ and false_type
otherwise. */template <typename T> using thrust::is_execution_policy = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is a BinaryPredicate equivalent to operator<
, and false_type
otherwise. */template <typename T> using thrust::is_operator_less_function_object = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is a BinaryPredicate equivalent to operator>
, and false_type
otherwise. */template <typename T> using thrust::is_operator_greater_function_object = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is a BinaryPredicate equivalent to operator<
or operator>
, and false_type
otherwise. */template <typename T> using thrust::is_operator_less_or_greater_function_object = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is a FunctionObject equivalent to operator+
, and false_type
otherwise. */template <typename T> using thrust::is_operator_plus_function_object = see below;
/* std::integral_constant
whose value is (... && Ts::value)
. */template <typename... Ts> using thrust::conjunction = see below;
/* std::integral_constant
whose value is (... || Ts::value)
. */template <typename... Ts> using thrust::disjunction = see below;
/* std::integral_constant
whose value is !Ts::value
. */template <typename T> using thrust::negation = see below;
/* Type alias that removes const-volatile qualifiers and references from T
. Equivalent to remove_cv_t<remove_reference_t<T>>
. */template <typename T> using thrust::remove_cvref_t = see below;
/* constexpr bool
that is true
if Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory, and false
otherwise. */template <typename Iterator> constexpr bool thrust::is_contiguous_iterator_v = see below;
/* constexpr bool
that is true
if T
is an _ExecutionPolicy_ and false
otherwise. */template <typename T> constexpr bool thrust::is_execution_policy_v = see below;
/* constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator<
, and false
otherwise. */template <typename T> constexpr bool thrust::is_operator_less_function_object_v = see below;
/* constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator>
, and false
otherwise. */template <typename T> constexpr bool thrust::is_operator_greater_function_object_v = see below;
/* constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator<
or operator>
, and false
otherwise. */template <typename T> constexpr bool thrust::is_operator_less_or_greater_function_object_v = see below;
/* constexpr bool
that is true
if T
is a FunctionObject equivalent to operator<
, and false
otherwise. */template <typename T> constexpr bool thrust::is_operator_plus_function_object_v = see below;
/* constexpr bool
whose value is (... && Ts::value)
. */template <typename... Ts> constexpr bool thrust::conjunction_v = see below;
/* constexpr bool
whose value is (... || Ts::value)
. */template <typename... Ts> constexpr bool thrust::disjunction_v = see below;
/* constexpr bool
whose value is !Ts::value
. */template <typename T> constexpr bool thrust::negation_v = see below;
/* constexpr bool
whose value is (... && Bs)
. */template <bool... Bs> constexpr bool thrust::conjunction_value_v = see below;
/* constexpr bool
whose value is (... || Bs)
. */template <bool... Bs> constexpr bool thrust::disjunction_value_v = see below;
/* constexpr bool
whose value is !Ts::value
. */template <bool B> constexpr bool thrust::negation_value_v = see below;
#define THRUST_PROCLAIM_CONTIGUOUS_ITERATOR = see below;
Member Classes
Struct thrust::proclaim_contiguous_iterator
Customization point that can be customized to indicate that an iterator type Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory.
Inherits From: false_type
Struct thrust::conjunction_value
std::integral_constant
whose value is (... && Bs)
.
Struct thrust::disjunction_value
std::integral_constant
whose value is (... || Bs)
.
Struct thrust::negation_value
std::integral_constant
whose value is !Bs
.
Struct thrust::remove_cvref
UnaryTypeTrait that removes const-volatile qualifiers and references from T
. Equivalent to remove_cv_t<remove_reference_t<T>>
.
Struct thrust::voider
Types
Type Alias thrust::integer_sequence
template <typename T, T... Is> using integer_sequence = std::integer_sequence< T, Is... >;
A compile-time sequence of integral constants of type T
with values Is...
.
See:
- integral constants
- index_sequence
- make_integer_sequence
- make_reversed_integer_sequence
- make_index_sequence
- make_reversed_index_sequence
- integer_sequence_push_front
- integer_sequence_push_back
std::integer_sequence
Type Alias thrust::index_sequence
template <std::size_t... Is> using index_sequence = std::index_sequence< Is... >;
A compile-time sequence of type std::size_t with values Is...
.
See:
- integer_sequence
- make_integer_sequence
- make_reversed_integer_sequence
- make_index_sequence
- make_reversed_index_sequence
- integer_sequence_push_front
- integer_sequence_push_back
std::index_sequence
Type Alias thrust::make_integer_sequence
template <typename T, std::size_t N> using make_integer_sequence = std::make_integer_sequence< T, N >;
Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type T
.
See:
- integer_sequence
- index_sequence
- make_reversed_integer_sequence
- make_index_sequence
- make_reversed_index_sequence
std::make_integer_sequence
Type Alias thrust::make_index_sequence
template <std::size_t N> using make_index_sequence = std::make_index_sequence< N >;
Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type std::size_t.
See:
- integer_sequence
- index_sequence
- make_integer_sequence
- make_reversed_integer_sequence
- make_reversed_index_sequence
std::make_index_sequence
Type Alias thrust::make_reversed_integer_sequence
template <typename T, std::size_t N> using make_reversed_integer_sequence = typename detail::make_reversed_integer_sequence_impl< T, N >::type;
Create a new integer_sequence
with elements N - 1, N - 2, N - 3, ..., 0
.
See:
- integer_sequence
- index_sequence
- make_integer_sequence
- make_index_sequence
- make_reversed_index_sequence
Type Alias thrust::make_reversed_index_sequence
template <std::size_t N> using make_reversed_index_sequence = make_reversed_integer_sequence< std::size_t, N >;
Create a new index_sequence
with elements N - 1, N - 2, N - 3, ..., 0
.
See:
- integer_sequence
- index_sequence
- make_integer_sequence
- make_reversed_integer_sequence
- make_reversed_index_sequence
Type Alias thrust::integer_sequence_push_front
template <typename T, T Value, typename Sequence> using integer_sequence_push_front = typename detail::integer_sequence_push_front_impl< T, Value, Sequence >::type;
Add a new element to the front of an integer_sequence
.
See:
- integer_sequence
- index_sequence
- make_integer_sequence
- make_index_sequence
Type Alias thrust::integer_sequence_push_back
template <typename T, T Value, typename Sequence> using integer_sequence_push_back = typename detail::integer_sequence_push_back_impl< T, Value, Sequence >::type;
Add a new element to the back of an integer_sequence
.
See:
- integer_sequence
- index_sequence
- make_integer_sequence
- make_index_sequence
Type Alias thrust::is_contiguous_iterator
template <typename Iterator> using is_contiguous_iterator = detail::is_contiguous_iterator_impl< Iterator >;
UnaryTypeTrait that returns true_type
if Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory, and false_type
otherwise.
See:
- is_contiguous_iterator_v
- proclaim_contiguous_iterator
- THRUST_PROCLAIM_CONTIGUOUS_ITERATOR
Type Alias thrust::is_execution_policy
template <typename T> using is_execution_policy = detail::is_base_of< detail::execution_policy_marker, T >;
UnaryTypeTrait that returns true_type
if T
is an ExecutionPolicy and false_type
otherwise.
Type Alias thrust::is_operator_less_function_object
template <typename T> using is_operator_less_function_object = detail::is_operator_less_function_object_impl< T >;
UnaryTypeTrait that returns true_type
if T
is a BinaryPredicate equivalent to operator<
, and false_type
otherwise.
See:
- is_operator_less_function_object_v
- is_operator_greater_function_object
- is_operator_less_or_greater_function_object
- is_operator_plus_function_object
Type Alias thrust::is_operator_greater_function_object
template <typename T> using is_operator_greater_function_object = detail::is_operator_greater_function_object_impl< T >;
UnaryTypeTrait that returns true_type
if T
is a BinaryPredicate equivalent to operator>
, and false_type
otherwise.
See:
- is_operator_greater_function_object_v
- is_operator_less_function_object
- is_operator_less_or_greater_function_object
- is_operator_plus_function_object
Type Alias thrust::is_operator_less_or_greater_function_object
template <typename T> using is_operator_less_or_greater_function_object = integral_constant< bool, detail::is_operator_less_function_object_impl< T >::value||detail::is_operator_greater_function_object_impl< T >::value >;
UnaryTypeTrait that returns true_type
if T
is a BinaryPredicate equivalent to operator<
or operator>
, and false_type
otherwise.
See:
- is_operator_less_or_greater_function_object_v
- is_operator_less_function_object
- is_operator_greater_function_object
- is_operator_plus_function_object
Type Alias thrust::is_operator_plus_function_object
template <typename T> using is_operator_plus_function_object = detail::is_operator_plus_function_object_impl< T >;
UnaryTypeTrait that returns true_type
if T
is a FunctionObject equivalent to operator+
, and false_type
otherwise.
See:
- is_operator_plus_function_object_v
- is_operator_less_function_object
- is_operator_greater_function_object
- is_operator_less_or_greater_function_object
Type Alias thrust::conjunction
template <typename... Ts> using conjunction = std::conjunction< Ts... >;
std::integral_constant
whose value is (... && Ts::value)
.
See:
- conjunction_v
- conjunction_value
std::conjunction
Type Alias thrust::disjunction
template <typename... Ts> using disjunction = std::disjunction< Ts... >;
std::integral_constant
whose value is (... || Ts::value)
.
See:
- disjunction_v
- disjunction_value
std::disjunction
Type Alias thrust::negation
template <typename T> using negation = std::negation< T >;
std::integral_constant
whose value is !Ts::value
.
See:
- negation_v
- negation_value
std::negation
Type Alias thrust::remove_cvref_t
template <typename T> using remove_cvref_t = typename remove_cvref< T >::type;
Type alias that removes const-volatile qualifiers and references from T
. Equivalent to remove_cv_t<remove_reference_t<T>>
.
See:
Variables
Variable thrust::is_contiguous_iterator_v
template <typename Iterator> constexpr bool is_contiguous_iterator_v = is_contiguous_iterator<Iterator>::value;
constexpr bool
that is true
if Iterator
satisfies ContiguousIterator, aka it points to elements that are contiguous in memory, and false
otherwise.
See:
- is_contiguous_iterator
- proclaim_contiguous_iterator
- THRUST_PROCLAIM_CONTIGUOUS_ITERATOR
Variable thrust::is_execution_policy_v
template <typename T> constexpr bool is_execution_policy_v = is_execution_policy<T>::value;
constexpr bool
that is true
if T
is an ExecutionPolicy and false
otherwise.
Variable thrust::is_operator_less_function_object_v
template <typename T> constexpr bool is_operator_less_function_object_v = is_operator_less_function_object<T>::value;
constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator<
, and false
otherwise.
See:
- is_operator_less_function_object
- is_operator_greater_function_object
- is_operator_less_or_greater_function_object
- is_operator_plus_function_object
Variable thrust::is_operator_greater_function_object_v
template <typename T> constexpr bool is_operator_greater_function_object_v = is_operator_greater_function_object<T>::value;
constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator>
, and false
otherwise.
See:
- is_operator_greater_function_object
- is_operator_less_function_object
- is_operator_less_or_greater_function_object
- is_operator_plus_function_object
Variable thrust::is_operator_less_or_greater_function_object_v
template <typename T> constexpr bool is_operator_less_or_greater_function_object_v = is_operator_less_or_greater_function_object<T>::value;
constexpr bool
that is true
if T
is a BinaryPredicate equivalent to operator<
or operator>
, and false
otherwise.
See:
- is_operator_less_or_greater_function_object
- is_operator_less_function_object
- is_operator_greater_function_object
- is_operator_plus_function_object
Variable thrust::is_operator_plus_function_object_v
template <typename T> constexpr bool is_operator_plus_function_object_v = is_operator_plus_function_object<T>::value;
constexpr bool
that is true
if T
is a FunctionObject equivalent to operator<
, and false
otherwise.
See:
- is_operator_plus_function_object
- is_operator_less_function_object
- is_operator_greater_function_object
- is_operator_less_or_greater_function_object
Variable thrust::conjunction_v
template <typename... Ts> constexpr bool conjunction_v = conjunction<Ts...>::value;
constexpr bool
whose value is (... && Ts::value)
.
See:
- conjunction
- conjunction_value
std::conjunction
Variable thrust::disjunction_v
template <typename... Ts> constexpr bool disjunction_v = disjunction<Ts...>::value;
constexpr bool
whose value is (... || Ts::value)
.
See:
- disjunction
- disjunction_value
std::disjunction
Variable thrust::negation_v
template <typename T> constexpr bool negation_v = negation<T>::value;
constexpr bool
whose value is !Ts::value
.
See:
- negation
- negation_value
std::negation
Variable thrust::conjunction_value_v
template <bool... Bs> constexpr bool conjunction_value_v = conjunction_value<Bs...>::value;
constexpr bool
whose value is (... && Bs)
.
See:
- conjunction_value
- conjunction
std::conjunction
Variable thrust::disjunction_value_v
template <bool... Bs> constexpr bool disjunction_value_v = disjunction_value<Bs...>::value;
constexpr bool
whose value is (... || Bs)
.
See:
- disjunction_value
- disjunction
std::disjunction
Variable thrust::negation_value_v
template <bool B> constexpr bool negation_value_v = negation_value<B>::value;
constexpr bool
whose value is !Ts::value
.
See:
- negation_value
- negation
std::negation
Macros
Define THRUST_PROCLAIM_CONTIGUOUS_ITERATOR
Declares that the iterator Iterator
is ContiguousIterator by specializing proclaim_contiguous_iterator
.
See:
- is_contiguous_iterator
- proclaim_contiguous_iterator