Considérez le morceau de code :
class T;
void constructVector(const T* item)
{
std::vector<T*> v;
v.push_back(item);
}
Je reçois une erreur avec le compilateur MSVC 2010 :
erreur : C2664 : 'void std::vector<_Ty>::push_back(_Ty &&)' : impossible de convertir le paramètre 1 de 'const T *' en 'T *&&' avec [ _Ty=T * ] La conversion perd les qualificatifs
Je peux voir que cette conversion particulière est illégale, mais je ne crois pas que mon code soit sémantiquement mauvais. Je crois aussi qu'il y a push_back(const T&)
variante, pourquoi ça ne correspond pas à mon appel ?