guides de déduction pour std::tuple
From fr.cppreference.net
| 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
Exécuter ce code
#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 }