来源:http://herbsutter.com/2013/05/22/gotw-5-solution-overriding-virtual-functions/
为什么我们应该这样写:
auto pb = unique_ptr<base>{ make_unique<derived>() };
不要只是:
auto pb = make_unique<derived>();
我的唯一猜测是,如果我们想要使用auto
,我们需要帮助它推断正确的类型(这里是base
)。
如果是这样,那么对我来说,这将是非常怀疑的优点..输入auto
,然后在=
右侧输入大量初始化..
我错过了什么吗?
decltype(pb)
) - R. Martinho Fernandesunique_ptr<base> pb = make_unique<derived>();
是否更简洁?自动类型推断存在并不意味着我们必须使用它。 - FredericSauto pb = unique_ptr<base>(new derived());
来保持清晰明了。 - Sander De Dycker{}
- emesx