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_ref

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

Składnia

C/C++
#include <functional>
namespace std {
    template < class S, class T >
    mem_fun_ref_t < S, T > mem_fun_ref( S( T::* f )() )
    { return mem_fun_ref_t < S, T >( f ); }
   
    template < class S, class T, class A >
    mem_fun1_ref_t < S, T, A > mem_fun_ref( S( T::* f )( A ) )
    { return mem_fun1_ref_t < S, T, A >( f ); }
   
    template < class S, class T >
    const_mem_fun_ref_t < S, T > mem_fun_ref( S( T::* f )() const )
    { return const_mem_fun_ref_t < S, T >( f ); }
   
    template < class S, class T, class A >
    const_mem_fun1_ref_t < S, T, A > mem_fun_ref( S( T::* f )( A ) const )
    { return const_mem_fun1_ref_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 referencję 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 ];
   
    std::for_each( tab, tab + 5, std::mem_fun_ref( & C::sth ) );
}
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_funZwraca obiekt funkcyjny opakowujący metodę (wersja dla wskaźnika). (szablon funkcji)

Linki zewnętrzne