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:

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:

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:

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:

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:

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