Что я беру в виду, можно объяснить на следующем примере:Выполняет std :: make_shared инициализацию значения (GCC и clang не согласны)?
auto p = std::make_shared<int>();
ли int
переменная по умолчанию инициализируется (значение, таким образом, мусор) или значение инициализации (при этом иметь нулевое значение)? Я тестировал GCC 5.2 и clang 3.6, причем первая выполняла инициализацию значения, а вторая выполняла инициализацию по умолчанию. Мне интересно, что говорит об этом стандарт? На мой взгляд, современный C++ должен определенно выполнить инициализацию значений в этом случае.
_ «Я тестировал на GCC 5.2 и clang 3.6 с первым инициализацией инициализации, а последний выполнял инициализацию по умолчанию.«_ Я удивлен вашим результатом для clang, как вы его протестировали? –
@JonathanWakely Я тестировал его на онлайн-компиляторе, встроенном в cppref. – Lingxi
Но как? Какой код вы писали для проверки поведения? –