SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • Google Chrome

    Google Chrom

    1 EYLÜL 2008
  • Moto Journal

    Moto Journal

    28 Mayıs 2007