std:: is_placeholder
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<functional>
|
||
|
template
<
class
T
>
struct is_placeholder ; |
(depuis C++11) | |
Si
T
est le type d'un espace réservé standard
(_1, _2, _3, ...)
, alors ce modèle est dérivé de
std::
integral_constant
<
int
,
1
>
,
std::
integral_constant
<
int
,
2
>
,
std::
integral_constant
<
int
,
3
>
, respectivement.
Si
T
n'est pas un type de substitution standard, ce modèle est dérivé de
std::
integral_constant
<
int
,
0
>
.
Un programme peut spécialiser ce modèle pour un
type défini par le programme
T
afin d'implémenter
UnaryTypeTrait
avec une caractéristique de base de
std::
integral_constant
<
int
, N
>
avec un
N
positif pour indiquer que
T
doit être traité comme le
N
ième
type de substitution.
std::bind
utilise
std::is_placeholder
pour détecter les espaces réservés pour les arguments non liés.
Table des matières |
Modèle de variable d'assistance
|
template
<
class
T
>
constexpr int is_placeholder_v = is_placeholder < T > :: value ; |
(depuis C++17) | |
Hérité de std:: integral_constant
Constantes membres
|
value
[static]
|
valeur de substitution ou
0
pour les types non-substitution
(constante membre publique statique) |
Fonctions membres
|
operator int
|
convertit l'objet en
int
, retourne
value
(fonction membre publique) |
|
operator()
(C++14)
|
retourne
value
(fonction membre publique) |
Types membres
| Type | Définition |
value_type
|
int |
type
|
std:: integral_constant < int , value > |
Exemple
#include <functional> #include <iostream> #include <type_traits> struct My_2 {} my_2; namespace std { template<> struct is_placeholder<My_2> : public integral_constant<int, 2> {}; } int f(int n1, int n2) { return n1 + n2; } int main() { std::cout << "Le placeholder standard _5 correspond au numéro d'argument " << std::is_placeholder_v<decltype(std::placeholders::_5)> << '\n'; auto b = std::bind(f, my_2, 2); std::cout << "Ajouter 2 à 11 sélectionné avec un placeholder personnalisé donne " << b(10, 11) // le premier argument, à savoir 10, est ignoré << '\n'; }
Sortie :
Standard placeholder _5 is for the argument number 5 Adding 2 to 11 selected with a custom placeholder gives 13
Voir aussi
|
(C++11)
|
lie un ou plusieurs arguments à un objet fonction
(modèle de fonction) |
|
(C++11)
|
espaces réservés pour les arguments non liés dans une expression
std::bind
(constante) |