Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Relational operators

Description

The TR1 Tuple provides the standard boolean relational operators.

Specification

Notation

T1 ... TN, U1 ... UN
Tuple element types
P1 ... PN
Parameter types
Ti, Ui
The type of the ith element of a tuple
Pi
The type of the ith parameter
template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator==(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(lhs) == get<i>(rhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns true if and only if get<i>(lhs) == get<i>(rhs) for all i. For any 2 zero length tuples e and f, e == f returns true.

template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator<(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(lhs) < get<i>(rhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns the lexicographical comparison of between lhs and rhs.

template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator!=(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(lhs) == get<i>(rhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns !(lhs == rhs).

template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator<=(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(rhs) < get<i>(lhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns !(rhs < lhs)

template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator>(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(rhs) < get<i>(lhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns rhs < lhs.

template<typename T1, typename T2, ..., typename TN,
         typename U1, typename U2, ..., typename UN>
bool operator>=(
    const tuple<T1, T2, ..., TN>& lhs,
    const tuple<U1, U2, ..., UN>& rhs);

Requirements: For all i, 1 <= i < N, get<i>(lhs) < get<i>(rhs) is a valid expression returning a type that is convertible to bool.

Semantics: Returns !(lhs < rhs).

Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger

PrevUpHomeNext