pure virtual function has no overrider

Problem version:
Intel® C++ 10.1

Operating System :
Windows* & Linux*

Problem Description :

class A
{
public:
typedef unsigned int idtype;
virtual void func(idtype id) = 0; //this is pure virtual function  --1 
};
class B
{
public:
class C : public A
{
public:
void func(const A::idtype id)     // Compiler 10.1 treats it as different function, see the change of definition  -- 2
// Compiler 8.1 or Microsoft compiles it well.
{
}
};
};

int main(const char *pServerName)
{
B::C C1; //this line gives the compilation error.
return 1;
}


Error reported:
error: object of abstract class type is not allowed:
pure virtual function.

Resolution Status :

This issue is NOT present in Intel® C++ compiler 8.1 but present in Intel® C++ compiler 10.1 versions, and the fix is NOT worked on in Intel® C++ compiler 10.1 version, as according to the C++ standard , this is appropriate behavior.

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.