Sdílet prostřednictvím


<memory> – operátory

operator!=

Testuje nerovnost mezi objekty.

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);

Parametry

Vlevo
Jeden z objektů, které se mají testovat na nerovnost.

Vpravo
Jeden z objektů, které se mají testovat na nerovnost.

Ty1
Typ řízený levým sdíleným ukazatelem.

Ty2
Typ řízený správným sdíleným ukazatelem.

Návratová hodnota

true pokud objekty nejsou stejné; false pokud jsou objekty stejné.

Poznámky

První operátor šablony vrátí hodnotu false. (Všechny výchozí alokátory jsou stejné.)

Operátory druhé a třetí šablony vrátí !(left == right).

Příklad

První příklad kódu ukazuje výsledky porovnání objektů alokátoru.

// 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.

Následující příklad kódu porovnává sdílené ukazatele na přidělené objekty:

// 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==

Testuje rovnost mezi objekty.

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);

Parametry

Vlevo
Jeden z objektů, které se mají testovat na rovnost.

Vpravo
Jeden z objektů, které se mají testovat na rovnost.

Ty1
Typ řízený levým sdíleným ukazatelem.

Ty2
Typ řízený správným sdíleným ukazatelem.

Návratová hodnota

true pokud jsou objekty stejné, false pokud objekty nejsou stejné.

Poznámky

První operátor šablony vrátí hodnotu true. (Všechny výchozí alokátory jsou stejné.)

Operátory druhé a třetí šablony vrátí left.get() == right.get().

Příklad

První příklad kódu ukazuje výsledky porovnání objektů alokátoru vytvořených různými způsoby.

// 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.

Následující příklad kódu porovnává sdílené ukazatele na přidělené objekty:

// 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>=

Testuje jeden objekt, který je větší nebo roven druhému objektu.

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);

Parametry

Vlevo
Jeden zobjektůch

Vpravo
Jeden zobjektůch

Ty1
Typ řízený levým sdíleným ukazatelem.

Ty2
Typ řízený správným sdíleným ukazatelem.

Poznámky

Operátory šablony vrátí left.get() >= right.get().

operator<

Testy pro jeden objekt jsou menší než druhý objekt.

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);

Parametry

Vlevo
Jeden zobjektůch

Vpravo
Jeden zobjektůch

Ty1
Typ řízený levým ukazatelem.

Ty2
Typ řízený pravým ukazatelem.

operator<=

Testuje jeden objekt, který je menší nebo roven druhému objektu.

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);

Parametry

Vlevo
Jeden zobjektůch

Vpravo
Jeden zobjektůch

Ty1
Typ řízený levým sdíleným ukazatelem.

Ty2
Typ řízený správným sdíleným ukazatelem.

Poznámky

Operátory šablony vrací left.get() <= right.get()

operator>

Testy pro jeden objekt jsou větší než druhý objekt.

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);

Parametry

Vlevo
Jeden zobjektůch

Vpravo
Jeden zobjektůch

Ty1
Typ řízený levým sdíleným ukazatelem.

Ty2
Typ řízený správným sdíleným ukazatelem.

operator<<

Zapíše sdílený ukazatel do datového proudu.

template <class Elem, class Tr, class Ty>
std::basic_ostream<Elem, Tr>& operator<<(std::basic_ostream<Elem, Tr>& out,
    shared_ptr<Ty>& sp);

Parametry

Elem
Typ elementu stream.

Tr
Typ vlastnosti elementu streamu.

Ty
Typ řízený sdíleným ukazatelem.

out
Výstupní datový proud

Sp
Sdílený ukazatel.

Poznámky

Funkce šablony vrátí out << sp.get().

Příklad

// 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)