1
可能重复:
Where and why do I have to put the “template” and “typename” keywords?这是什么样的模板?
这里是片段的代码:
template <typename alloc_t>
int Protocol_v2<alloc_t>::create(..., alloc_t *alloc, ...) {
Protocol_v2<alloc_t> * pack = alloc->template malloc<Protocol_v2<alloc_t> >();
Protocol_v2是一个模板类,如下所示:
template <typename alloc_t>
class Protocol_v2 { ...}
alloc_t是一类,如下所示:
class reverse_allocator {
...
template<typename T>
inline T * malloc() {}
...
}
是什么在困扰我的是这一行:
Protocol_v2<alloc_t> * pack = alloc->template malloc<Protocol_v2<alloc_t> >();
是什么意思呢?到目前为止我还没有在C++ primer中看到过。
在此先感谢。
这是因为'malloc'是一个独立的名字。尽管如此,没有任何关于C++ 11的具体内容。 – Flexo
“这是什么巫术” - 大声笑 – sehe