В C++ следующие два приведения кажутся очень похожими:
Код: Выделить всё
template auto convert1(U&& u) {
return T( std::forward(u) );
}
template auto convert2(U&& u) {
return static_cast( std::forward(u) );
}
Если они разные, я был бы признателен за несколько примеров мест в Стандартной библиотеке, где небольшая разница важна. (Я имею в виду, например, как указано, что std::make_shared(args...) создает свой объект с помощью T(args...) вместо T{args... из-за тонкой разницы между T() и T{}.)
Подробнее здесь: https://stackoverflow.com/questions/456 ... tic-casttx
Мобильная версия