Исходя из фона C, я всегда предполагал, что типы POD (например, int) никогда не были автоматически инициализированы нулями в С++, но, похоже, это было просто неправильно!
Я понимаю, что только "голые" нестатические значения POD не заполняются нулями, как показано в фрагменте кода. Правильно ли я, и есть ли другие важные случаи, которые я пропустил?
static int a;
struct Foo { int a;};
void test()
{
int b;
Foo f;
int *c = new(int);
std::vector<int> d(1);
// At this point...
// a is zero
// f.a is zero
// *c is zero
// d[0] is zero
// ... BUT ... b is undefined
}