Udostępnij za pośrednictwem


function::function

Konstrukcje otoki, która jest pusta lub przechowuje nieopłacona obiektu dowolnego typu za pomocą środka podpisu.

function();
function(nullptr_t npc);
function(const function& _Right);
template<class Fx>
   function(Fx _Func);
template<class Fx>
    function(reference_wrapper<Fx> _Fnref);
template<class Fx, class Alloc>
    function(
        Fx _Func, 
        const Alloc& _Ax
);
template<class Fx, class Alloc>
    function(
        reference_wrapper<Fx> _Fnref, 
        const Alloc& _Ax
    );

Parametry

  • _Right
    Funkcja obiekt przeznaczony do skopiowania.

  • FX
    Typ obiektu wpłacone.

  • _Func
    Wpłacone obiekt oblewania.

  • Alokacji
    Typ programu przydzielania.

  • _Ax
    Alokator.

  • _Fnref
    Odwołanie do obiektu wpłacone na zawijanie.

Uwagi

Pierwsze dwa konstruktory skonstruować pustą function obiektu.Kolejne trzy konstruktorów skonstruować function obiekt, który przechowuje nieopłacona obiektu jest przekazywana jako argument.Ostatnie dwa konstruktory przydzielić pamięci masowej z programu przydzielania obiektu _Ax.

Przykład

 

// std_tr1__functional__function_function.cpp 
// compile with: /EHsc 
#include <functional> 
#include <iostream> 
#include <vector>
 
int square(int val)
{
    return val * val;
}

class multiply_by
{
public:
    explicit multiply_by(const int n) : m_n(n) { }

    int operator()(const int x) const
    {
        return m_n * x;
    }

private:
    int m_n;
};


int main() 
{ 

    typedef std::vector< std::function<int (int)> > vf_t;

    vf_t v;
    v.push_back(square);
    v.push_back(std::negate<int>());
    v.push_back(multiply_by(3));

    for (vf_t::const_iterator i = v.begin(); i != v.end(); ++i)
    {
        std::cout << (*i)(10) << std::endl;
    }

    std::function<int (int)> f = v[0];
    std::function<int (int)> g;

    if (f) {
        std::cout << "f is non-empty (correct)." << std::endl;
    } else {
        std::cout << "f is empty (can't happen)." << std::endl;
    }
 
    if (g) {
        std::cout << "g is non-empty (can't happen)." << std::endl;
    } else {
        std::cout << "g is empty (correct)." << std::endl;
    }

    return 0; 
}
  

Wymagania

Nagłówek: <functional>

Przestrzeń nazw: std

Zobacz też

Informacje

function — Klasa

function::operator=

Lvalues i Rvalues