Modern C++ Design 繁体版勘误1

来源:互联网 发布:淘宝买家怎么申请退款 编辑:程序博客网 时间:2024/04/29 03:21

P34

template <typename T, bool isPolymorphic>class NiftyContainer{    ...    typedef Select<isPolymorphic, T*, T>::Resault ValueType;    ...};

这段代码在编译时会出现下面警告,并且ValueType缺少类型说明符错误

warning C4346: “Select<isPolymorphic, T*, T>::Resault" 依赖名称不是类型

正确的写法是

template <typename T, bool isPolymorphic>class NiftyContainer{    ...    typedef typename Select<isPolymorphic, T*, T>::Resault ValueType;    ...};

typename向编译器说明,Resault是类型而不同其他别的,这在使用非template参数类型时非常有用。具体可参考《C++ Template》5.1节。



转载注明出处:blog.csdn.net/ani_di

原创粉丝点击