Kokkos::pair
#
Header File: Kokkos_Pair.hpp
An implementation of std::pair
that is intended to be fully compatible, with the exception that Kokkos::pair
will work on the device. Also provides utility functions to convert from and to std::pair
Usage:
std::pair<int, float> std_pair = std::make_pair(1,2.0f);
Kokkos::pair<int_float> kokkos_pair = Kokkos::make_pair(1,2.0f);
Kokkos::pair<int, float> converted_std_pair(std_pair);
std::pair<int,float> converted_kokkos_pair = kokkos_pair.to_std_pair();
Synopsis#
template <class T1, class T2>
struct pair {
typedef T1 first_type;
typedef T2 second_type;
first_type first;
second_type second;
KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default;
KOKKOS_FORCEINLINE_FUNCTION constexpr pair(first_type const& f,
second_type const& s);
template <class U, class V>
KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const pair<U, V>& p);
template <class U, class V>
KOKKOS_FORCEINLINE_FUNCTION pair<T1, T2>& operator=(const pair<U, V>& p);
template <class U, class V>
pair(const std::pair<U, V>& p);
std::pair<T1, T2> to_std_pair() const;
};
Public Class Members#
first
: the first element in the pairsecond
: the second element in the pair
Typedefs#
first_type
: the type of the first element in the pairsecond_type
: the type of the second element in the pair
Constructors#
KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default;
Default constructor. Initializes both data members with their defaults
KOKKOS_FORCEINLINE_FUNCTION constexpr pair(first_type const& f,
second_type const& s);
Element-wise constructor. Assigns first
the value of f
, second
the value of s
template <class U, class V>
KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const pair<U, V>& p);
Conversion from std::pair
. Assigns each element of the pair to its corresponding element in the p
Assignment and conversion#
template <class U, class V>
KOKKOS_FORCEINLINE_FUNCTION pair<T1, T2>& operator=(const pair<U, V>& p);
Sets first
to p.first
and second
to p.second
Functions#
std::pair<T1, T2> to_std_pair() const;
Returns a std::pair
whose contents match those of the Kokkos::pair
. Useful for interacting with libraries that explicitly only accept std::pair