std:: unary_function
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 celui-ci.
std::unary_function
fournit seulement deux types -
argument_type
et
result_type
- définis par les paramètres du template.
Certains adaptateurs d'objets fonction de la bibliothèque standard, tels que
std::not1
, exigent que les objets fonction qu'ils adaptent possèdent certains types définis ;
std::not1
requiert que l'objet fonction adapté ait un type nommé
argument_type
. Dériver les objets fonction qui prennent un argument de
std::unary_function
est un moyen simple de les rendre compatibles avec ces adaptateurs.
std::unary_function
est déprécié 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) |