Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
function-style-Aufruf an einen Ausdruck des Typs „type“ verliert möglicherweise die const- und/oder volatile-Qualifizierer für alle number verfügbaren Operatorüberladungen
Bemerkungen
Eine Variable mit einem angegebenen veränderlichen Typ kann nur Memberfunktionen aufrufen, die mit gleichen oder höheren veränderlichen Qualifikationen definiert sind.
Um diesen Fehler zu beheben, stellen Sie eine entsprechende Memberfunktion bereit. Sie können keine Konvertierung für ein konst- oder veränderliches qualifiziertes Objekt ausführen, wenn die Konvertierung zu einem Verlust der Qualifizierung führt. Sie können Qualifizierer gewinnen, aber Sie können qualifizierer in einer Konvertierung nicht verlieren.
Example
Im folgenden Beispiel wird C3849 generiert:
// C3849.cpp
void glbFunc3(int i, char c)
{
i;
}
typedef void (* pFunc3)(int, char);
void glbFunc2(int i)
{
i;
}
typedef void (* pFunc2)(int);
void glbFunc1()
{
}
typedef void (* pFunc1)();
struct S4
{
operator ()(int i)
{
i;
}
operator pFunc1() const
{
return &glbFunc1;
}
operator pFunc2() volatile
{
return &glbFunc2;
}
operator pFunc3()
{
return &glbFunc3;
}
// operator pFunc1() const volatile
// {
// return &glbFunc1;
// }
};
int main()
{
// Cannot call any of the 4 overloads of "operator ()(.....)" and
// "operator pFunc()" because none is declared as "const volatile"
const volatile S4 s4; // can only call cv member functions of S4
s4(); // C3849 to resolve, uncomment member function
}