Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktionen-liknande anrop på ett uttryck av typen "typ" skulle förlora const och/eller volatile kvalificerare för alla tillgängliga operatörsöverlagringar
Anmärkningar
En variabel med en angiven beständig typ kan bara anropa medlemsfunktioner som definierats med samma eller större beständiga kvalifikationer.
Åtgärda det här felet genom att ange en lämplig medlemsfunktion. Du kan inte köra en konvertering på ett beständigt eller flyktigt kvalificerat objekt när konverteringen orsakar förlust av kvalificering. Du kan erhålla kvalifikationer men du kan inte förlora kvalifikationer i en konvertering.
Example
Följande exempel genererar C3849:
// 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
}