J'ai rencontré un problème étrange en essayant de compiler mon code dans Visual Studio (2010); voici un exemple isolé (et simplifié) :
class A
{
public:
enum {
VALUE = 0
};
};
namespace ns
{
class A;
class B
{
public:
B(int val = ::A::VALUE) // cette ligne
{}
};
class A : public ::A
{
public:
};
}
Cela donne l'erreur suivante : erreur C2027 : utilisation du type 'ns::A' non défini
. Est-ce un bug dans VS ou est-ce que je fais quelque chose de mal ?
Mise à jour : cela semble être un bug spécifique à Visual Studio. Voici une solution de contournement suggérée sur Microsoft Connect:
class B
{
public:
typedef ::A A1;
B(int val = A1::VALUE)
{}
};