Co biorę oznaczać można wyjaśnić w poniższym przykładzie:Czy std :: make_shared dokonuje inicjalizacji wartości (GCC i clang disagree)?
auto p = std::make_shared<int>();
Czy zmienna domyślna int
zainicjowana (a więc mają wartość śmieci) lub wartość zainicjowana (zatem mieć wartość zero)? Przetestowałem na GCC 5.2 i klang 3.6, gdy pierwszy wykonuje inicjalizację wartości, a drugi wykonuje domyślną inicjalizację. Zastanawiam się, co standard mówi na ten temat? Moim zdaniem, nowoczesne C++ powinno zdecydowanie wykonać inicjalizację wartości w tym przypadku.
_ "Testowałem na GCC 5.2 i klang 3.6 z poprzednią wartością inicjującą i drugą wykonującą domyślną inicjalizację."Jestem zaskoczony twoim wynikiem za klang, jak to przetestowałeś?" –
@ JonathanWakely Testowałem go na kompilatorze online osadzonym w cppref – Lingxi
Ale jak? Jaki kod napisałeś, aby zweryfikować zachowanie? –