フラグメントコードは次のとおりです。
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++入門書でそれを見たことがありません。
前もって感謝します。