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++

ptr_fun

[szablon funkcji] Zwraca obiekt funkcyjny opakowujący funkcję.

Składnia

C/C++
#include <functional>
namespace std {
    template < class Arg, class Result >
    pointer_to_unary_function < Arg, Result > ptr_fun( Result( * f )( Arg ) )
    {
        return pointer_to_unary_function < Arg, Result >( f );
    }
   
    template < class Arg1, class Arg2, class Result >
    pointer_to_binary_function < Arg1, Arg2, Result > ptr_fun( Result( * f )( Arg1, Arg2 ) )
    {
        return pointer_to_binary_function < Arg1, Arg2, Result >( f );
    }
}

Parametry szablonu

ParametrOpis
Arg(1)Typ (pierwszego) argumentu funkcji
Arg2Typ drugiego argumentu funkcji
ResultTyp wartości zwracanej przez funkcję

Przyjmowane argumenty

ArgumentOpis
fWskaźnik na funkcję, którą ma opakowywać obiekt funkcyjny

Wartość zwracana

Funkcja zwraca obiekt funkcyjny opakowujący funkcję.

Opis szczegółowy

Funkcja tworzy obiekt funkcyjny opakowujący wskaźnik na funkcję. Taki obiekt może następnie zostać użyty w algorytmach biblioteki standardowej jako, na przykład, kryterium sortowania.

Przykład

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

bool less_5( int a ) {
    return a < 5;
}

int main() {
    int tab[ 5 ] = { 1, 3, 6, 10, - 1 };
    std::cout << "Liczby: ";
    for( int a = 0; a < 5; ++a ) std::cout << tab[ a ] << " ";
   
    std::cout << std::endl;
    std::cout << "W zbiorze sa " << std::count_if( tab, tab + 5, std::ptr_fun( less_5 ) ) << " liczby mniejsze niz 5." << std::endl;
}
Standardowe wyjście programu:
Liczby: 1 3 6 10 -1
W zbiorze sa 3 liczby mniejsze niz 5.

Zagadnienia powiązane

mem_funZwraca obiekt funkcyjny opakowujący metodę (wersja dla wskaźnika). (szablon funkcji)
mem_fun_refZwraca obiekt funkcyjny opakowujący metodę (wersja dla referencji). (szablon funkcji)

Linki zewnętrzne