std:: forward_as_tuple
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
forward_as_tuple
|
||||
|
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper concepts | ||||
|
(C++23)
|
||||
| Helper classes | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Deduction guides (C++17) |
|
Défini dans l'en-tête
<tuple>
|
||
|
template
<
class
...
Types
>
std:: tuple < Types && ... > forward_as_tuple ( Types && ... args ) noexcept ; |
(depuis C++11)
(constexpr depuis C++14) |
|
Construit un tuple de références aux arguments dans args approprié pour le transfert en tant qu'argument à une fonction. Le tuple possède des membres de données de type référence rvalue lorsque des rvalues sont utilisées comme arguments, et possède sinon des membres de données de type référence lvalue.
Table des matières |
Paramètres
| args | - | zéro ou plusieurs arguments pour construire le tuple |
Valeur de retour
Un objet std::tuple créé comme si par std:: tuple < Types && ... > ( std:: forward < Types > ( args ) ... )
Notes
Si les arguments sont des temporaires,
forward_as_tuple
ne prolonge pas leur durée de vie ; ils doivent être utilisés avant la fin de l'expression complète.
Exemple
#include <iostream> #include <map> #include <string> #include <tuple> int main() { std::map<int, std::string> m; m.emplace(std::piecewise_construct, std::forward_as_tuple(6), std::forward_as_tuple(9, 'g')); std::cout << "m[6] = " << m[6] << '\n'; // The following is an error: it produces a // std::tuple<int&&, char&&> holding two dangling references. // // auto t = std::forward_as_tuple(20, 'a'); // m.emplace(std::piecewise_construct, std::forward_as_tuple(10), t); }
Sortie :
m[6] = ggggggggg
Voir aussi
|
(C++11)
|
crée un objet
tuple
du type défini par les types d'arguments
(modèle de fonction) |
|
(C++11)
|
crée un
tuple
de références de lvalue ou décompose un tuple en objets individuels
(modèle de fonction) |
|
(C++11)
|
crée un
tuple
en concaténant un nombre quelconque de tuples
(modèle de fonction) |
|
(C++17)
|
appelle une fonction avec un tuple d'arguments
(modèle de fonction) |