Here the compiler complains that the 'uint' in the class 'A' declaration ambiguates with the 'uint' declaration in namespace N. However, the 'using namespace N;' is yet to follow when the class 'A' is declared. Microsoft replied the following:
"Hi: while this [sic] strictly a bug in the Visual C++ compiler it is unfortunately closely tied up with how templates are implemented in Visual C++ - so it is not something we would fix any time soon."
typedef unsigned int uint;
template <typename Type>
class A
{
public:
uint a_;
};
namespace N
{
typedef unsigned int uint;
}
using namespace N;
A<int> a;
int main()
{
return 0;
}