Прежде чем вы начнете отмечать это как дубликат, я уже прочитал this . Но это не отвечает на мой вопрос. Связанный вопрос говорит о С++ 98 и С++ 03, но мой вопрос о конструкторе по умолчанию, представленном С++ 11.
Рассмотрим следующую программу (см. живое демо здесь):
#include <iostream>
struct Test
{
int s;
float m;
Test(int a,float b) : s(a),m(b)
{ }
Test()=default;
}t;
int main()
{
std::cout<<t.s<<'\n';
std::cout<<t.m<<'\n';
}
Мой вопрос в том, что конструктор, предоставленный компилятором по умолчанию, всегда инициализирует встроенные типы по умолчанию 0 в С++ 11 и С++ 14, когда они являются членами class
и struct
. Является ли это поведение гарантированным стандартом С++ 11?