Erro do compilador C2040
'operator' : 'identifier1' difere de 'identifier2' nos níveis de indireção
Uma expressão que envolve os operandos especificados tem tipos de operando incompatíveis ou tipos de operando convertidos implicitamente. Se ambos os operandos forem aritméticos ou não aritméticos (como matriz ou ponteiro), eles serão usados sem alteração. Se um operando for aritmético e o outro não, o operando aritmético será convertido para o tipo do operando não aritmético.
Este exemplo gera C2040 e mostra como corrigi-lo.
// C2040.cpp
// Compile by using: cl /c /W3 C2040.cpp
bool test() {
char c = '3';
return c == "3"; // C2446, C2040
// return c == '3'; // OK
}