Go to the documentation of this file.
14 #include <vtkm/internal/Configure.h>
28 template <
typename T1,
typename T2>
71 :
first(std::move(firstSrc))
72 ,
second(std::move(secondSrc))
79 template <
typename U1,
typename U2>
86 template <
typename U1,
typename U2>
88 U2{ std::declval<U2&&>() }))
94 template <
typename U1,
typename U2>
101 template <
typename U1,
typename U2>
103 U2{ std::declval<U2&&>() }))
116 return ((this->first == other.
first) && (this->second == other.
second));
122 return !(*
this == other);
131 return ((this->first < other.
first) ||
132 (!(other.
first < this->first) && (this->second < other.
second)));
157 template <
typename T,
typename U>
163 template <
typename T1,
typename T2>
168 using DT1 =
typename std::decay<T1>::type;
169 using DT2 =
typename std::decay<T2>::type;
172 return PairT(std::forward<T1>(v1), std::forward<T2>(v2));
177 #endif //vtk_m_Pair_h
T1 FirstType
The type of the first object.
Definition: Pair.h:33
VTKM_EXEC_CONT vtkm::Pair< typename std::decay< T1 >::type, typename std::decay< T2 >::type > make_Pair(T1 &&v1, T2 &&v2)
Definition: Pair.h:164
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Pair(FirstType &&firstSrc, SecondType &&secondSrc) noexcept(noexcept(FirstType{ std::declval< FirstType && >() }, SecondType{ std::declval< SecondType && >() }))
Definition: Pair.h:68
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_EXEC_CONT Pair(const vtkm::Pair< U1, U2 > &src)
Definition: Pair.h:80
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
VTKM_EXEC_CONT Pair(const FirstType &firstSrc, const SecondType &secondSrc)
Definition: Pair.h:60
VTKM_EXEC_CONT bool operator==(const vtkm::Pair< FirstType, SecondType > &other) const
Definition: Pair.h:114
SecondType second_type
The same as SecondType, but follows the naming convention of std::pair.
Definition: Pair.h:45
VTKM_EXEC_CONT bool operator>(const vtkm::Pair< FirstType, SecondType > &other) const
Tests ordering on the first object, and then on the second object if the first are equal.
Definition: Pair.h:139
VTKM_EXEC_CONT vtkm::Vec< T, Size > operator+(vtkm::Vec< T, Size > a, const vtkm::Vec< T, Size > &b)
Definition: VecOperators.h:92
T2 SecondType
The type of the second object.
Definition: Pair.h:37
VTKM_EXEC_CONT Pair(std::pair< U1, U2 > &&src) noexcept(noexcept(U1{ std::declval< U1 && >() }, U2{ std::declval< U2 && >() }))
Definition: Pair.h:102
FirstType first
The pair's first object.
Definition: Pair.h:50
VTKM_EXEC_CONT bool operator>=(const vtkm::Pair< FirstType, SecondType > &other) const
Tests ordering on the first object, and then on the second object if the first are equal.
Definition: Pair.h:151
vtkm::Pair< FirstType, SecondType > & operator=(const vtkm::Pair< FirstType, SecondType > &src)=default
VTKM_EXEC_CONT Pair(const std::pair< U1, U2 > &src)
Definition: Pair.h:95
VTKM_EXEC_CONT Pair(vtkm::Pair< U1, U2 > &&src) noexcept(noexcept(U1{ std::declval< U1 && >() }, U2{ std::declval< U2 && >() }))
Definition: Pair.h:87
FirstType first_type
The same as FirstType, but follows the naming convention of std::pair.
Definition: Pair.h:41
VTKM_EXEC_CONT bool operator!=(const vtkm::Pair< FirstType, SecondType > &other) const
Definition: Pair.h:120
VTKM_EXEC_CONT bool operator<=(const vtkm::Pair< FirstType, SecondType > &other) const
Tests ordering on the first object, and then on the second object if the first are equal.
Definition: Pair.h:145
A vtkm::Pair is essentially the same as an STL pair object except that the methods (constructors and ...
Definition: Pair.h:29
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
SecondType second
The pair's second object.
Definition: Pair.h:55
VTKM_EXEC_CONT bool operator<(const vtkm::Pair< FirstType, SecondType > &other) const
Tests ordering on the first object, and then on the second object if the first are equal.
Definition: Pair.h:129