|
(Note that these are not member functions.)
|
template<typename T , typename U , typename V > |
constexpr bool | operator== (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Checks if two triple objects are equivalent. More...
|
|
template<typename T , typename U , typename V > |
constexpr bool | operator< (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Checks if two triple objects are lexicographically less than each other. More...
|
|
template<typename T , typename U , typename V > |
constexpr bool | operator!= (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Checks if two triple objects are not equivalent. More...
|
|
template<typename T , typename U , typename V > |
constexpr bool | operator> (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Checks if two triple objects are lexicographically greater than each other. More...
|
|
template<typename T , typename U , typename V > |
constexpr bool | operator>= (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Compares both triple objects to see if they're greater than or equal to each other. More...
|
|
template<typename T , typename U , typename V > |
constexpr bool | operator<= (const triple< T, U, V > &lhs, const triple< T, U, V > &rhs) |
| Compares both triple objects to see if they're less than or equal to each other. More...
|
|
template<typename T , typename U , typename V > |
void | swap (triple< T, U, V > &lhs, triple< T, U, V > &rhs) noexcept(noexcept(lhs.swap(rhs))) |
| Swaps the elements of the triple objects. More...
|
|
template<typename T , typename U , typename V > |
constexpr triple< meta::Decay
< T >, meta::Decay< U >
, meta::Decay< V > > | make_triple (T &&t, U &&u, V &&v) |
| Creates a triple object. More...
|
|
template<typename T, typename U, typename V>
struct gears::utility::triple< T, U, V >
Implements a three-element tuple. This class has std::get
, std::tuple_element
, and std::tuple_size
defined for generic usage. For example:
constexpr utility::triple<int, int, int> x = { 1, 2, 3 };
static_assert(std::is_same<std::tuple_element<0, decltype(x)>::value, "...");
static_assert(std::get<0>(x) == 1, "...");
static_assert(std::tuple_size<decltype(x)>::value == 3, "...");
triple
is also an aggregate, so it could be created using curly bracket syntax.
constexpr utility::triple<int, char, double> x = { 10, 'a', 12.0 };
- Template Parameters
-
T | First type of the triple. |
U | Second type of the triple. |
V | Third type of the triple. |
Definition at line 55 of file triple.hpp.