Namespaces
Variants

std::unary_function

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support de type (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Encapsuleurs d'opérateurs transparents
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Anciens lieurs et adaptateurs
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)  
(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)

(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
 
Défini dans l'en-tête <functional>
template< typename ArgumentType, typename ResultType >
struct unary_function;
(obsolète en C++11)
(supprimé en C++17)

std::unary_function est une classe de base pour créer des objets fonction avec un argument.

std::unary_function ne définit pas operator() ; il est attendu que les classes dérivées définissent cela. std::unary_function fournit seulement deux types - argument_type et result_type - définis par les paramètres de template.

Certains adaptateurs d'objets fonction de la bibliothèque standard, tels que std::not1, exigent que les objets fonction qu'ils adaptent aient certains types définis ; std::not1 exige que l'objet fonction adapté ait un type nommé argument_type. Dériver des objets fonction prenant un argument de std::unary_function est un moyen simple de les rendre compatibles avec ces adaptateurs.

std::unary_function est obsolète en C++11.

Types membres

Type Définition
argument_type ArgumentType
result_type ResultType

Exemple

#include <algorithm>
#include <functional>
#include <iostream>
#include <vector>
struct less_than_7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
int main()
{
    std::vector<int> v(10, 7);
    v[0] = v[1] = v[2] = 6;
    std::cout << std::count_if(v.begin(), v.end(), std::not1(less_than_7()));
    // Solution C++11 :
    // Conversion en std::function<bool (int)> d'une manière ou d'une autre - même avec un lambda
    // std::cout << std::count_if(v.begin(), v.end(),
    //     std::not1(std::function<bool (int)>([](int i) { return i < 7; })));
}

Sortie :

7

Voir aussi

(C++11)
enveloppe copiable de tout objet appelable copiable
(modèle de classe)
enveloppe non copiable de tout objet appelable prenant en charge les qualificateurs dans une signature d'appel donnée
(modèle de classe)
(obsolète en C++11) (supprimé en C++17)
crée un wrapper d'objet fonction compatible avec les adaptateurs à partir d'un pointeur de fonction
(modèle de fonction)
(obsolète en C++11) (supprimé en C++17)
wrapper compatible avec les adaptateurs pour un pointeur vers une fonction unaire
(modèle de classe)
(obsolète en C++11) (supprimé en C++17)
classe de base de fonction binaire compatible avec les adaptateurs
(modèle de classe)