El siguiente código se compila correctamente con Visual Studio 2010:código se compila en Visual Studio 2010, pero no se debe compilar en absoluto
namespace NS
{
class X
{
};
X Y(X str);
}
void myFun()
{
NS::X x;
Y(x);
}
(este código se reduce en donde se han sustituido todos mis propios nombres de las clases y funciones por X, Y, ...)
Me esperaba que la línea Y(x)
no compilaría, ya que debería ser NS::Y(x)
.
Este código fuente se compila con el siguiente comando
cl /c file.cpp
no hay otros archivos incluidos aquí, no hay otras opciones de línea de comandos.
¿Por qué compila este archivo? Error en VS2010? ¿O algo que yo (y mis otros 3 colegas) pasamos por alto?
intenté esto con g ++ y obtuve la referencia 'undefined a NS :: Y (NS :: X) '' - así que tal vez podría ser un error en VS .. – WeaselFox
http://ideone.com/WzC6V –
@WeaselFox : completamente sin relación. Su error es un * error de enlazador * porque 'NS :: Y' no está definido. Es típico, y probablemente se definiría en otro archivo en una configuración completa. –