De alguna manera me gustan estos programas "más cortos" que muestran un problema (¿fundamental?). Al probar un poco de código de plantilla en VS2008 este error apareció (que también ha sido confirmado para VS2010 y VS2012, ver más abajo):Error de compilador VS C2752 ("más de una especialización parcial coincide con") en STL
c: \ archivos de programa (x86) \ Microsoft Visual Studio 9.0 \ VC \ include \ xmemory (225): error C2752: 'std :: _ Ptr_cat_helper < _T1, _t2>': más de una especialización parcial coincide con la lista de argumentos de plantilla
with [ _T1=const float (**), _T2=const float (**) ]
podría reducirse el problema de las tres líneas siguientes :
#include <vector>
typedef float TPoint[3];
std::vector<TPoint const*> points; // error C2752
cuenta que la siguiente es todo muy bien
#include <vector>
#include <list>
typedef float TPoint[3];
// these similar usages of TPoint are all ok:
std::vector<TPoint*> points; // no error
TPoint const* points1[2];
std::list<TPoint const*> points2;
Traté de arreglar xutility suministrando spezializations plantilla adicionales para _Ptr_cat_helper estructura - sin suerte. ¿Alguna idea de lo que sale mal? ¿O cómo trabajar sin perder el const
?
¿No tienes un VS instalar delante de mí, pero funciona con GCC. Es posible que haya encontrado un error en su lib estándar. –
Actualmente no es posible la actualización VS: dependemos de dlls (usando componentes MFC) de otros grupos ... Pero sería genial escuchar si las tres líneas anteriores compilan en VS2010 – coproc
Disculpe, no compila, por eso eliminado ese comentario. :/No está del todo claro cuál debería ser el elemento del vector, sin embargo. ¿Un puntero a una matriz de tres elementos de flotadores const? – Xeo