c ++模板特化,尖括号中的模板关键字

时间:2017-04-21 08:06:15

标签: c++ c++11 c++14 template-meta-programming

我从boost :: hana获得了这段代码:

template <typename Storage>
struct KeyAtIndex {
    template <std::size_t i>
    using apply = decltype(hana::first(hana::at_c<i>(std::declval<Storage>())));
};

template <typename ...Pairs>
struct make_map_type {
    using Storage = hana::basic_tuple<Pairs...>;
    using HashTable = typename detail::make_hash_table<
        detail::KeyAtIndex<Storage>::template apply, sizeof...(Pairs)
    >::type;
    using type = detail::map_impl<HashTable, Storage>;
};

我想知道detail::KeyAtIndex<Storage>::template的意思是什么,为什么在这里使用template关键字? c ++ iso标准中有什么东西可以解释一下吗?

0 个答案:

没有答案