![]() |
Home | Libraries | People | FAQ | More |
#include <boost/tr1/tuple.hpp>
or
#include <tuple>
A tuple is a fixed size collection of elements. Pairs, triples, quadruples etc. are tuples. In a programming language, a tuple is a data object containing other objects as elements. These element objects may be of different types. Tuples are convenient in many circumstances. For instance, tuples make it easy to define functions that return more than one value. Some programming languages, such as ML, Python and Haskell, have built-in tuple constructs. Unfortunately C++ does not. To compensate for this "deficiency", the TR1 Tuple Library implements a tuple construct using templates. For more information see the Boost Tuple Library Documentation.
namespace std { namespace tr1 { // [6.1.3] Class template tuple template <class T1 = unspecified , class T2 = unspecified , ..., class TM = unspecified > class tuple; // [6.1.3.2] Tuple creation functions const unspecified ignore; template<class T1, class T2, ..., class TN> tuple<V1, V2, ..., VN> make_tuple(const T1&, const T2& , ..., const TN&); // [6.1] Tuple types Containers template<class T1, class T2, ..., class TN> tuple<T1&, T2&, ..., TN&> tie(T1&, T2& , ..., TN&); // [6.1.3.3] Tuple helper classes template <class T> class tuple_size; template <int I, class T> class tuple_element; // [6.1.3.4] Element access template <int I, class T1, class T2, ..., class TN> RI get(tuple<T1, T2, ..., TN>&); template <int I, class T1, class T2, ..., class TN> PI get(const tuple<T1, T2, ..., TN>&); // [6.1.3.5] relational operators template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator==(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator<(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator!=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator>(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator<=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM> bool operator>=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&); } // namespace tr1 } // namespace std
Configuration: Boost.Config should (automatically) define the macro BOOST_HAS_TR1_TUPLE if your standard library implements this part of TR1.
Standard Conformity: No known issues for conforming compilers.