CGAL 5.2  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. More...  
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. More...  
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. More...  
T2  second 
second element. More...  
T3  third 
third element. More...  
T4  fourth 
fourth element. More...  
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 . More...  
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. More...  
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>()
.