2013-11-15 4 views
3

Я просто пытался использовать make_unique функцию C++ 11 на XCode5.0.2, лязг версияmake_unique avaibility в xcode5?

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) 

После проверки Похоже, что нет. make_shared есть.

Я знаю, что это C++ 14, но он также был одной из первых функций, проверенных для C++ 14. Это даже в Visual :).

Есть идеи, когда они будут доступны?

Спасибо!

ответ

5

Примечание: комментарий больше, чем ответ, но форматированный код и комментарии не смешиваются.

К сожалению, не знаю, когда он будет доступен; Однако вы можете легко определить его самостоятельно сейчас и просто переключиться на стандартную позже:

template <typename T, typename... Args> 
auto make_unique(Args&&... args) -> std::unique_ptr<T> 
{ 
    return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); 
} 

Вот так, вопреки make_shared нет магии здесь, потому что выгода только один из безопасности исключений (связать распределение и захват в unique_ptr), тогда как make_shared связывает дополнительные преимущества (не относится к unique_ptr).

Смежные вопросы