Type Traits
/* A compile-time sequence of _integral constants_ of type
T
with values Is...
. */template <typename T, T... Is> struct thrust::integer_sequence;
/* 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 (... && Ts::value)
. */template <typename... Ts> struct thrust::conjunction;
/* constexpr bool
whose value is (... && Ts::value)
. */template <typename... Ts> struct thrust::disjunction;
/* constexpr bool
whose value is (... || Ts::value)
. */template <typename T> struct thrust::negation;
/* constexpr bool
whose value is !Ts::value
. */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 type std::size_t with values Is...
. */template <::cuda::std::size_t... Is> using index_sequence = see below;
/* Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type T
. */template <typename T, ::cuda::std::size_t N> using make_integer_sequence = see below;
/* Create a new integer_sequence
with elements 0, 1, 2, ..., N - 1
of type std::size_t. */template <::cuda::std::size_t N> using make_index_sequence = see below;
/* Create a new integer_sequence
with elements N - 1, N - 2, N - 3, ..., 0
. */template <typename T, ::cuda::std::size_t N> using make_reversed_integer_sequence = see below;
/* Create a new index_sequence
with elements N - 1, N - 2, N - 3, ..., 0
. */template <::cuda::std::size_t N> using 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 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 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 is_contiguous_iterator = see below;
/* _UnaryTypeTrait_ that returns true_type
if T
is an _ExecutionPolicy_ and false_type
otherwise. */template <typename T> using 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 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 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 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 is_operator_plus_function_object = 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 remove_cvref_t = see below;
template <typename... Ts> using void_t = see below;
#define THRUST_PROCLAIM_CONTIGUOUS_ITERATOR = see below;
Member Classes
Struct thrust::integer_sequence
A compile-time sequence of integral constants of type T
with values Is...
.
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
std::integral_constant
whose value is (... && Ts::value)
.
Struct thrust::disjunction
constexpr bool
whose value is (... && Ts::value)
.
Struct thrust::negation
constexpr bool
whose value is (... || Ts::value)
.
Struct thrust::conjunction_value
constexpr bool
whose value is !Ts::value
.
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 index_sequence
template <::cuda::std::size_t... Is> using index_sequence = integer_sequence<::cuda::std::size_t, 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 make_integer_sequence
template <typename T, ::cuda::std::size_t N> using make_integer_sequence = typename detail::make_integer_sequence_impl< T, N >::type;
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 make_index_sequence
template <::cuda::std::size_t N> using make_index_sequence = make_integer_sequence<::cuda::std::size_t, 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 make_reversed_integer_sequence
template <typename T, ::cuda::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 make_reversed_index_sequence
template <::cuda::std::size_t N> using make_reversed_index_sequence = make_reversed_integer_sequence<::cuda::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 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 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 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 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 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 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 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 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 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:
Type Alias void_t
template <typename... Ts> using void_t = typename voider< Ts... >::type;
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