Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: pekfos
Język C++

mem_fun

[szablon funkcji] Zwraca obiekt funkcyjny opakowujący metodę (wersja dla wskaźnika).

Składnia

C/C++
#include <functional>
namespace std {
    template < class S, class T > mem_fun_t < S, T > mem_fun( S( T::* f )() )
    { return mem_fun_t < S, T >( f ); }
   
    template < class S, class T, class A > mem_fun1_t < S, T, A > mem_fun( S( T::* f )( A ) )
    { return mem_fun1_t < S, T, A >( f ); }
   
    template < class S, class T > const_mem_fun_t < S, T > mem_fun( S( T::* f )() const )
    { return const_mem_fun_t < S, T >( f ); }
   
    template < class S, class T, class A > const_mem_fun1_t < S, T, A > mem_fun( S( T::* f )( A ) const )
    { return const_mem_fun1_t < S, T, A >( f ); }
}

Parametry szablonu

ParametrOpis
STyp wartości zwracanej przez metodę
TTyp zawierający daną metodę
AArgument przyjmowany przez metodę

Przyjmowane argumenty

ArgumentOpis
fwskaźnik na metodę, którą ma opakowywać obiekt funkcyjny

Wartość zwracana

Funkcja zwraca obiekt funkcyjny opakowujący metodę.

Opis szczegółowy

Funkcja tworzy obiekt funkcyjny opakowujący wskaźnik na metodę. Przy wywołaniu, obiekt funkcyjny pobiera wskaźnik na obiekt, na którym ma zostać wywołana metoda. Taki obiekt może następnie zostać użyty, na przykład, w algorytmach biblioteki standardowej.

Przykład

C/C++
#include <iostream>
#include <functional>
#include <algorithm>

class C {
public:
    void sth() {
        std::cout << "Metoda wywolana!" << std::endl;
    }
};

int main() {
    C * tab[ 5 ];
    for( int a = 0; a < 5; ++a ) tab[ a ] = new C;
   
    std::for_each( tab, tab + 5, std::mem_fun( & C::sth ) );
   
    for( int a = 0; a < 5; ++a ) delete tab[ a ];
   
}
Standardowe wyjście programu
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!
Metoda wywolana!

Zagadnienia powiązane

ptr_funZwraca obiekt funkcyjny opakowujący funkcję. (szablon funkcji)
mem_fun_refZwraca obiekt funkcyjny opakowujący metodę (wersja dla referencji). (szablon funkcji)

Linki zewnętrzne