Namespaces
Variants

std::is_placeholder

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 de coroutine (C++20)
Support de contrat (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)
Enveloppes d'opérateur transparentes
(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 binders 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< 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 d'espace réservé 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 la caractéristique de base de std::integral_constant<int, N> avec un N positif pour indiquer que T doit être traité comme le Nème type d'espace réservé.

std::bind utilise std::is_placeholder pour détecter les espaces réservés pour les arguments non liés.

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)
espaces réservés pour les arguments non liés dans une expression std::bind
(constante)