In C++ scheinen die folgenden zwei Umwandlungen sehr ähnlich zu sein:
Code: Select all
template auto convert1(U&& u) {
return T( std::forward(u) );
}
template auto convert2(U&& u) {
return static_cast( std::forward(u) );
}
Wenn sie unterschiedlich sind, würde ich mich über einige Beispiele von Stellen in der Standardbibliothek freuen, an denen der subtile Unterschied relevant ist. (Ich meine damit, wie std::make_shared(args...) angegeben wird, um sein Objekt mit T(args...) anstelle von T{args...} zu erstellen, da dort ein subtiler Unterschied zwischen T() und T{} besteht.)
Mobile version