std::unary_function
| 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) |
|
(C++23)
|
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) |