make_unique ve mükemmel iletme
Neden C 11 standart kütüphane std::make_unique İşlev şablonu var mı? Buluyorum
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
biraz ayrıntılı. Aşağıdaki daha hoş olmaz mıydı?
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
Bu kez new güzel gizler ve tek tip bahseder.
Her neyse, burada make_unique uygulaması yük:
template<typename T, typename... Args>
std::unique_ptr<T> make_unique(Args&&... args)
{
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}
Beni uzunca bir süre std::forward derlemek için bir şeyler almak için zaman aldı, ama doğru olup olmadığından emin değilim. ? Tam olarak std::forward<Args>(args)... ne anlama geliyor? Derleyici bu konuda ne düşünüyor?
CEVAP
Herb Sutter, C standardizasyon Komitesi Başkanı, onun blog yazar:
C 11
make_uniqueiçermeyen kısmen bir gözetim ve kesinlikle gelecekte eklenecektir.
O da bir OP tarafından verilen ile aynı olan bir uygulama sağlar.
Düzenleme:std::make_unique C 14 parçası olacak.

JavaScript: bir geri çağırma işlevi iç...
Kullanıcı mükemmel bir daire çizin...
Bir WordPress kullanmak bir işlevi içi...
Satranç için mükemmel bir algoritma va...
Python: Nasıl "mükemmel" bir...