2016-04-05 2 views

Répondre

2

La réponse est Oui, car vous avez probablement vérifié la compilation. Les règles sont les mêmes que pour la déduction d'argument de modèle. Vous pouvez toujours vérifier quel type est déduit de la variable automatique donnée dans IDE ou utiliser erreur du compilateur pour que, par exemple:

class my{ 
/*some things*/ 
}myobj; 

template<typename T> class TD; 

int main() 
{ 
    auto newobj = myobj; 
    TD<decltype(newobj)> td; 
} 

produit erreur:

main.cpp:14:26: error: aggregate 'TD<my> td' has incomplete type and cannot be defined 
    TD<decltype(newobj)> td; 

vous donnant des informations que newobj est de type my