La combinaison de l'auto et du decltype
0. Spectacle pré-classe
decltype
Résolution du problème de type sum (), mais t1 et t2 n'ont pas été déclarés . Pour résoudre ce problème, un type de retour de fuite a été introduit .
1. L'introduction du suivi des types de retour
- À l'origine, seul le type de declt était utilisé
template<typename T1, typename T2>
decltype(t1+t2) sum(T1 &t1, T2 &t2)
{
return t1 + t2;
}
- Maintenant: comment écrire auto et decltype
template <typename T1, typename T2>
auto sum(T1 &t1, T2 &t2)->decltype( t1 + t2)
{
return t1 + t2;
}
2. Les deux éléments de base qui composent la fonction de type de retour de trace
auto
Espace réservé
- Symbole composé
->return_type
, c.-à-d.->decltype(t1+t2)
3. Suivez l'application réelle de la fonction de type de retour
Lisez-moi
- 20200421 Première édition: "Compréhension approfondie de C ++ 11" 4.4, "Application approfondie de C ++ 11" est trop simple.