Biblioteca de tupla C ++ - operadores relacionais (tupla)

Descrição

Ele contém operadores relacionais para tupla e executa a operação de comparação apropriada entre os objetos de tupla lhs e rhs.

Declaração

A seguir está a declaração para operadores std :: relacionais (tupla)

C ++ 98

template<class... TTypes, class... UTypes>
   bool operator== ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator!= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator< ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator> ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator>= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator<= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);

C ++ 11

template<class... TTypes, class... UTypes>
   bool operator== ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator!= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator< ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator> ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator>= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
template<class... TTypes, class... UTypes>
   bool operator<= ( const tuple<TTypes...>& lhs, const tuple<UTypes...>& rhs);
</pre>

Parâmetros

lhs, rhs - Estes são objetos de tupla.

Valor de retorno

Retorna verdadeiro se a condição for mantida e falso caso contrário.

Exceções

No-throw guarantee - esta função de membro nunca lança exceções.

Corridas de dados

lhs e rhs, são acessados ​​e até todos os seus membros são acessados.

Exemplo

No exemplo abaixo para operadores std :: relacionais (tupla).

#include <iostream>
#include <tuple>

int main () {
   std::tuple<int,char> a (100,'x');
   std::tuple<char,char> b (100,'x');
   std::tuple<char,char> c (100,'y');

   if (a==b) std::cout << "a and b are equal\n";
   if (b!=c) std::cout << "b and c are not equal\n";
   if (b<c) std::cout << "b is less than c\n";
   if (c>a) std::cout << "c is greater than a\n";
   if (a<=c) std::cout << "a is less than or equal to c\n";
   if (c>=b) std::cout << "c is greater than or equal to b\n";

   return 0;
}

A saída deve ser assim -

a and b are equal
b and c are not equal
b is less than c
c is greater than a
a is less than or equal to c
c is greater than or equal to b