<memory>
Operadores
operator!=
Comprueba la desigualdad entre objetos.
template <class Type, class Other>
bool operator!=(
const allocator<Type>& left,
const allocator<Other>& right) throw();
template <class T, class Del1, class U, class Del2>
bool operator!=(
const unique_ptr<T, Del1>& left,
const unique_ptr<U&, Del2>& right);
template <class Ty1, class Ty2>
bool operator!=(
const shared_ptr<Ty1>& left,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos cuya desigualdad se va a comprobar.
right
Uno de los objetos cuya desigualdad se va a comprobar.
Ty1
Tipo controlado por el puntero compartido izquierdo.
Ty2
Tipo controlado por el puntero compartido derecho.
Valor devuelto
true
si los objetos no son iguales; false
si lo son.
Comentarios
El primer operador de la plantilla devuelve false. (Todos los asignadores predeterminados son iguales).
El segundo y el tercer operador de la plantilla devuelven !(left == right)
.
Ejemplo
En el primer ejemplo del código se muestran los resultados de la comparación de objetos del asignador.
// memory_op_me.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <vector>
using namespace std;
int main( )
{
allocator<double> Alloc;
vector <char>:: allocator_type v1Alloc;
if ( Alloc != v1Alloc )
cout << "The allocator objects Alloc & v1Alloc not are equal."
<< endl;
else
cout << "The allocator objects Alloc & v1Alloc are equal."
<< endl;
}
The allocator objects Alloc & v1Alloc are equal.
En el ejemplo del código siguiente se comparan los punteros compartidos con los objetos asignados:
// std__memory__operator_ne.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
int main()
{
std::shared_ptr<int> sp0(new int(0));
std::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;
return (0);
}
sp0 != sp0 == false
sp0 != sp1 == true
operator==
Comprueba la igualdad entre objetos.
template <class Type, class Other>
bool operator==(
const allocator<Type>& left,
const allocator<Other>& right) throw();
template <class Ty1, class Del1, class Ty2, class Del2>
bool operator==(
const unique_ptr<Ty1, Del1>& left,
const unique_ptr<Ty2, Del2>& right);
template <class Ty1, class Ty2>
bool operator==(
const shared_ptr<Ty1>& left;,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos cuya igualdad se va a comprobar.
right
Uno de los objetos cuya igualdad se va a comprobar.
Ty1
Tipo controlado por el puntero compartido izquierdo.
Ty2
Tipo controlado por el puntero compartido derecho.
Valor devuelto
true
si los objetos son iguales, false
si no lo son.
Comentarios
El primer operador de la plantilla devuelve true. (Todos los asignadores predeterminados son iguales).
El segundo y el tercer operador de la plantilla devuelven left.get() == right.get()
.
Ejemplo
En el primer ejemplo del código se muestran los resultados de la comparación de los objetos del asignador construidos de maneras diferentes.
// memory_op_eq.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <vector>
using namespace std;
int main( )
{
allocator<char> Alloc;
vector <int>:: allocator_type v1Alloc;
allocator<char> cAlloc(Alloc);
allocator<int> cv1Alloc(v1Alloc);
if ( cv1Alloc == v1Alloc )
cout << "The allocator objects cv1Alloc & v1Alloc are equal."
<< endl;
else
cout << "The allocator objects cv1Alloc & v1Alloc are not equal."
<< endl;
if ( cAlloc == Alloc )
cout << "The allocator objects cAlloc & Alloc are equal."
<< endl;
else
cout << "The allocator objects cAlloc & Alloc are not equal."
<< endl;
}
The allocator objects cv1Alloc & v1Alloc are equal.
The allocator objects cAlloc & Alloc are equal.
En el ejemplo del código siguiente se comparan los punteros compartidos con los objetos asignados:
// std__memory__operator_eq.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
int main()
{
std::shared_ptr<int> sp0(new int(0));
std::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;
return (0);
}
sp0 == sp0 == true
sp0 == sp1 == false
operator>=
Comprueba si un objeto es mayor o igual que un segundo objeto.
template <class T, class Del1, class U, class Del2>
bool operator>=(
const unique_ptr<T, Del1>& left,
const unique_ptr<U, Del2>& right);
template <class Ty1, class Ty2>
bool operator>=(
const shared_ptr<Ty1>& left,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos que se va a comparar.
right
Uno de los objetos que se va a comparar.
Ty1
Tipo controlado por el puntero compartido izquierdo.
Ty2
Tipo controlado por el puntero compartido derecho.
Comentarios
Los operadores de plantilla devuelven left.get() >= right.get()
.
operator<
Comprueba si un objeto es menor que un segundo objeto.
template <class T, class Del1, class U, class Del2>
bool operator<(
const unique_ptr<T, Del1>& left,
const unique_ptr<U&, Del2>& right);
template <class Ty1, class Ty2>
bool operator<(
const shared_ptr<Ty1>& left,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos que se va a comparar.
right
Uno de los objetos que se va a comparar.
Ty1
Tipo controlado por el puntero izquierdo.
Ty2
Tipo controlado por el puntero derecho.
operator<=
Comprueba si un objeto es menor o igual que un segundo objeto.
template <class T, class Del1, class U, class Del2>
bool operator<=(
const unique_ptr<T, Del1>& left,
const unique_ptr<U&, Del2>& right);
template <class Ty1, class Ty2>
bool operator<=(
const shared_ptr<Ty1>& left,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos que se va a comparar.
right
Uno de los objetos que se va a comparar.
Ty1
Tipo controlado por el puntero compartido izquierdo.
Ty2
Tipo controlado por el puntero compartido derecho.
Comentarios
Los operadores de plantilla devuelven left.get() <= right.get()
operator>
Comprueba si un objeto es mayor que un segundo objeto.
template <class Ty1, class Del1, class Ty2, class Del2>
bool operator>(
const unique_ptr<Ty1, Del1>& left,
const unique_ptr<Ty2&, Del2gt;& right);
template <class Ty1, class Ty2>
bool operator>(
const shared_ptr<Ty1>& left,
const shared_ptr<Ty2>& right);
Parámetros
left
Uno de los objetos que se va a comparar.
right
Uno de los objetos que se va a comparar.
Ty1
Tipo controlado por el puntero compartido izquierdo.
Ty2
Tipo controlado por el puntero compartido derecho.
operator<<
Escribe el puntero compartido en la secuencia.
template <class Elem, class Tr, class Ty>
std::basic_ostream<Elem, Tr>& operator<<(std::basic_ostream<Elem, Tr>& out,
shared_ptr<Ty>& sp);
Parámetros
Elem
El tipo del elemento de secuencia.
Tr
El tipo de rasgos del elemento de secuencia.
Ty
Tipo controlado por el puntero compartido.
out
Secuencia de salida.
Sp
El puntero compartido.
Comentarios
La función de plantilla devuelve out << sp.get()
.
Ejemplo
// std__memory__operator_sl.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
int main()
{
std::shared_ptr<int> sp0(new int(5));
std::cout << "sp0 == " << sp0 << " (varies)" << std::endl;
return (0);
}
sp0 == 3f3040 (varies)