Namespaces
Variants

guides de déduction pour std::tuple

From fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support de types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (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)
Fonctions de comparaison d'entiers
(C++20)(C++20)(C++20)    
(C++20)
Opérations et de type
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Types de vocabulaire communs
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Défini dans l'en-tête <tuple>
template<class... UTypes>
tuple(UTypes...) -> tuple<UTypes...>;
(1) (depuis C++17)
template<class T1, class T2>
tuple(std::pair<T1, T2>) -> tuple<T1, T2>;
(2) (depuis C++17)
template<class Alloc, class... UTypes>
tuple(std::allocator_arg_t, Alloc, UTypes...) -> tuple<UTypes...>;
(3) (depuis C++17)
template<class Alloc, class T1, class T2>
tuple(std::allocator_arg_t, Alloc, std::pair<T1, T2>) -> tuple<T1, T2>;
(4) (depuis C++17)
template<class Alloc, class... UTypes>
tuple(std::allocator_arg_t, Alloc, tuple<UTypes...>) -> tuple<UTypes...>;
(5) (depuis C++17)

Ces guides de déduction sont fournis pour std::tuple afin de prendre en compte les cas particuliers non couverts par les guides de déduction implicites, en particulier, les arguments non copiables et la conversion de tableau en pointeur.

Exemple

#include <tuple>
int main()
{
    int a[2], b[3], c[4];
    std::tuple t1{a, b, c}; // un guide de déduction explicite est utilisé dans ce cas
}