Sdílet prostřednictvím


Chyba kompilátoru C3446

'class': Výchozí inicializátor člena není povolený pro člena třídy hodnot.

Poznámky

V sadě Visual Studio 2015 a starší kompilátor povolil (ale ignoroval) výchozí inicializátor člena pro člena třídy hodnot. Výchozí inicializace třídy hodnot vždy nula inicializuje členy; Výchozí konstruktor není povolen. V sadě Visual Studio 2017 vyvolá výchozí inicializátory členů chybu kompilátoru, jak je znázorněno v tomto příkladu:

Příklad

Následující příklad vygeneruje C3446 ve Visual Studio 2017 a novějších verzích.

// 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
};

Chcete-li chybu opravit, odeberte inicializátor:

// C3446b.cpp
value struct V
{
       int i;
       int j;
};