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.
"klass": en standardmedleminitierare tillåts inte för en medlem i en värdeklass
Anmärkningar
I Visual Studio 2015 och tidigare tillät kompilatorn (men ignorerade) en standardmedleminitierare för en medlem i en värdeklass. Standardinitiering av en värdeklass nollinitierar alltid medlemmarna. en standardkonstruktor tillåts inte. I Visual Studio 2017 skapar standardmedlemsinitierare ett kompilatorfel, vilket visas i det här exemplet:
Example
I följande exempel genereras C3446 i Visual Studio 2017 och senare:
// C3446.cpp
value struct V
{
int i = 0; // error C3446: 'V::i': a default member initializer
// is not allowed for a member of a value class
int j {0}; // C3446
};
Åtgärda felet genom att ta bort initieraren:
// C3446b.cpp
value struct V
{
int i;
int j;
};