Chr*_*ris 2 c++ templates class shared-ptr forward-declaration
假设我有一些模板类前向声明,我想键入一个共享指针.我该怎么做?
template<typename T> class Arg;
typedef std::tr1::shared_ptr<Arg> ArgPtr; // Compiler error
Run Code Online (Sandbox Code Playgroud)
您可能还需要模板typedef.阅读Sutter的文章.
在C++ 03中,你需要一个hack:
template <typename Arg> struct ArgPtr {
typedef std::shared_ptr<Arg> ArgPtrType;
};
Run Code Online (Sandbox Code Playgroud)
在C++ 11中,您可以直接使用模板别名和using关键字:
template <typename T>
using ArgPtrType = std::shared_ptr<Arg<T>>;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2192 次 |
| 最近记录: |