如何将现有模板类部分专门化为新类型?

时间:2017-12-17 15:20:07

标签: c++ templates boost partial-specialization

----重要提示:这不是部分模板专业化的解决方案,而是我在不知情的情况下寻找类型别名。抱歉混淆-----

我想做什么

我想将boost :: unordered_multimap专门化为基本上只需要存储的数据,因此永久性地使键成为boost :: uuids :: uuid。

当前尝试

template<class t>
boost::unordered_multimap<boost::uuids::uuid, t, boost::hash<boost::uuids::uuid>> unorderedUUIDMultMap;'

    Here is the usage:
        unorderedUUIDMultMap<int> uuidMultMap; //Should create a mutlimap storing ints.

这是错误:

main.cpp|24|error: expected ';' before 'uuidMultMap'|

我也尝试使用&#34; typedef&#34;在模板之前,但也没有成功。

我该如何正确地做这个简单的快捷方式?

1 个答案:

答案 0 :(得分:1)

您想要的不是部分特化,而是模板类型别名:

template <typename T> using my_mmap = boost::unordered_multimap<boost::uuids::uuid, T, boost::hash<boost::uuids::uuid>>;