operador < <memória>
shared_ptr e weak_ptr menos de comparação.
template<class Ty1, class Ty2>
bool operator<(const shared_ptr<Ty1>& left, const shared_ptr<Ty2>& right);
template<class Ty1, class Ty2>
bool operator<(const weak_ptr<Ty1>& left, const weak_ptr<Ty2>& right);
Parâmetros
Ty1
O tipo controlado pelo ponteiro compartilhado à esquerda.Ty2
O tipo controlado pelo ponteiro compartilhado à direita.left
O ponteiro compartilhado à esquerda.right
O ponteiro compartilhado à direita.
Comentários
As funções do modelo de impõem uma ordenação estrito fraco em objetos de seus respectivos tipos.A ordem real é específico de implementação, exceto que !(left < right) && !(right < left) é verdade somente quando left e right o proprietário ou aponte para o mesmo recurso. A ordenação impostas por essas funções permite o uso de Classe shared_ptr e Classe weak_ptr objetos sistema autônomo chaves em recipientes de associação.
Exemplo
// std_tr1__memory__operator_lt.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
int main()
{
std::tr1::shared_ptr<int> sp0(new int(0));
std::tr1::shared_ptr<int> sp1(new int(0));
std::cout << "sp0 < sp0 == " << std::boolalpha
<< (sp0 < sp0) << std::endl;
std::cout << "sp0 < sp1 == " << std::boolalpha
<< (sp0 < sp1) << std::endl;
std::cout << "sp1 < sp0 == " << std::boolalpha
<< (sp1 < sp0) << std::endl;
std::cout << std::endl;
std::tr1::weak_ptr<int> wp0(sp0);
std::tr1::weak_ptr<int> wp1(sp1);
std::cout << "wp0 < wp0 == " << std::boolalpha
<< (wp0 < wp0) << std::endl;
std::cout << "wp0 < wp1 == " << std::boolalpha
<< (wp0 < wp1) << std::endl;
std::cout << "wp1 < wp0 == " << std::boolalpha
<< (wp1 < wp0) << std::endl;
return (0);
}
sp0 < sp0 == false sp0 < sp1 == true sp1 < sp0 == false wp0 < wp0 == false wp0 < wp1 == true wp1 < wp0 == false
Requisitos
Cabeçalho:<memória>
Namespace: std::tr1