这是片段代码:
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++ 入门中看到这一点。
提前致谢。