12 AĞUSTOS 2011, Cuma
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
11 Mart 2012, Pazar
Herb Sutter, C standardizasyon Komitesi Başkanı, onun blog yazar:
C 11
make_unique
iç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.
Bunu Paylaş:
Satranç için mükemmel bir algoritma va...
Python: Nasıl "mükemmel" bir...
Ne kadar mükemmel, Sürekli Entegrasyon...
Bootstrap giriş için üst kapsayıcı 100...
C argümanları iletme# jenerik yeni() ş...