Le code suivant ne compile pas car T
est maintenant déduit pour être une référence (soit une valeur l, soit une valeur r, mais ceci n'est pas pertinent ici). Donc std::vector
ne peut plus prendre T
comme argument. Est-ce que quelqu'un sait un moyen de résoudre ce problème? Merci!comment est-ce que je passe le paramètre de modèle correctement?
template<typename T>
void func(T&& t)
{
std::vector<T> v;
}
Réponse: utiliser std::decay
comme commenté.
Veuillez fournir un [MCVE] qui produit le problème que vous rencontrez. –
utilisez ['std :: decay'] (http://fr.cppreference.com/w/cpp/types/decay) – SirGuy
Merci SirGuy! Ça a marché! – Dave