Mat*_*ner 4 c++ templates typedef
以下是什么问题?
typedef boost::shared_ptr SharedPtr;
Run Code Online (Sandbox Code Playgroud)
GCC给出以下错误:
ISO C++禁止声明'shared_ptr'没有类型
C++还没有"模板类型定义",您可以在其中"重命名"这样的模板.这是在C++ 0x中添加的一个功能,其中这样的"typedef"被称为"别名模板".
目前最简单的解决方法是使用带有嵌套typedef的类模板:
template <typename T>
struct SharedPtr
{
typedef std::shared_ptr<T> Type;
};
// usage
typename SharedPtr<int>::Type sp;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1339 次 |
| 最近记录: |