|
CGAL 6.0 - STL Extensions for CGAL
|
#include <CGAL/utility.h>
The Quadruple class is an extension of std::pair.
Quadruple is a heterogeneous quadruple: it holds one object of type T1, one of type T2, one of type T3, and one of type T4. A Quadruple is much like a container, in that it "owns" its elements. It is not actually a model of container, though, because it does not support the standard methods (such as iterators) for accessing the elements of a container.
std::tuple or std::array instead for new uses.
Requirements
T1, T2, T3 and T4 must be Assignable. Additional operations have additional requirements.
Public Member Functions | |
| template<class T1 , class T2 , class T3 , class T4 > | |
| bool | operator< (Quadruple< T1, T2, T3, T4 > x, Quadruple< T1, T2, T3, T4 > y) |
| The comparison operator. | |
| template<class T1 , class T2 , class T3 , class T4 > | |
| bool | operator== (Quadruple< T1, T2, T3, T4 > x, Quadruple< T1, T2, T3, T4 > y) |
| The equality operator. | |
Related Functions | |
(Note that these are not member functions.) | |
| template<class T1 , class T2 , class T3 , class T4 > | |
| Quadruple< T1, T2, T3, T4 > | make_quadruple (T1 x, T2 y, T3 z, T4 w) |
Equivalent to Quadruple<T1, T2, T3, T4>(x, y, z, w). | |
| template<class T1 , class T2 , class T3 , class T4 > | |
| Quadruple< T1, T2, T3, T4 > | make_tuple (T1 x, T2 y, T3 z, T4 w) |
Equivalent to Quadruple<T1, T2, T3, T4>(x, y, z, w). | |
Types | |
| typedef T1 | first_type |
| typedef T2 | second_type |
| typedef T3 | third_type |
| typedef T4 | fourth_type |
Variables | |
| T1 | first |
| first element. | |
| T2 | second |
| second element. | |
| T3 | third |
| third element. | |
| T4 | fourth |
| fourth element. | |
Creation | |
| Quadruple () | |
| introduces a quadruple using the default constructor of the four elements. | |
| Quadruple (T1 x, T2 y, T3 z, T4 w) | |
constructs a quadruple such that first is constructed from x, second is constructed from y, third is constructed from z, and fourth is constructed from w. | |
| template<class U , class V , class W , class X > | |
| Quadruple (U u, V v, W w, X x) | |
constructs a quadruple such that first is constructed from u, second is constructed from v, third is constructed from w, and fourth is constructed from x. | |
| template<int i> | |
| T | get () |
Gives access to first, second, third or fourth whenever i is 0, 1, 2 or 3, via a, potentially const, reference. | |
| CGAL::Quadruple< T1, T2, T3, T4 >::Quadruple | ( | U | u, |
| V | v, | ||
| W | w, | ||
| X | x | ||
| ) |
constructs a quadruple such that first is constructed from u, second is constructed from v, third is constructed from w, and fourth is constructed from x.
Proper conversion operators must exist from U to T1, V to T2, W to T3, and X to T4.
| T CGAL::Quadruple< T1, T2, T3, T4 >::get | ( | ) |
Gives access to first, second, third or fourth whenever i is 0, 1, 2 or 3, via a, potentially const, reference.
Note: T stands for T1, T2, T3 or T4 depending on i.
| bool CGAL::Quadruple< T1, T2, T3, T4 >::operator< | ( | Quadruple< T1, T2, T3, T4 > | x, |
| Quadruple< T1, T2, T3, T4 > | y | ||
| ) |
The comparison operator.
It uses lexicographic comparison: the return value is true if the first element of x is less than the first element of y, and false if the first element of y is less than the first element of x. If neither of these is the case, then it returns true if the second element of x is less than the second element of y, and false if the second element of y is less than the second element of x. If neither of these is the case, then it returns true if the third element of x is less than the third element of y, and false if the third element of y is less than the third element of x. If neither of these is the case, then it returns the result of comparing the fourth elements of x and y. This operator may only be used if T1, T2, T3, and T4 define the comparison operator.
| bool CGAL::Quadruple< T1, T2, T3, T4 >::operator== | ( | Quadruple< T1, T2, T3, T4 > | x, |
| Quadruple< T1, T2, T3, T4 > | y | ||
| ) |
The equality operator.
The return value is true if and only the first elements of x and y are equal, the second elements of x and y are equal, the third elements of x and y are equal, and the fourth elements of x and y are equal. This operator may only be used if T1, T2, T3, and T4 define the equality operator.
| T1 CGAL::Quadruple< T1, T2, T3, T4 >::first |
first element.
Please access it using get<0>().
| T4 CGAL::Quadruple< T1, T2, T3, T4 >::fourth |
fourth element.
Please access it using get<3>().
| T2 CGAL::Quadruple< T1, T2, T3, T4 >::second |
second element.
Please access it using get<1>().
| T3 CGAL::Quadruple< T1, T2, T3, T4 >::third |
third element.
Please access it using get<2>().