如何将现有模板 class 部分特化为新类型?
How can I partially specialize a existing template class into a new type?
----重要提示:这不是部分模板专业化的解决方案,而是我在不知情的情况下寻找类型别名。抱歉造成混淆-----
我想做什么
我想将 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'|
我也试过在模板前使用 "typedef",但也没有成功。
如何正确执行这个简单的快捷方式?
你想要的不是偏特化,而是模板类型别名:
template <typename T> using my_mmap = boost::unordered_multimap<boost::uuids::uuid, T, boost::hash<boost::uuids::uuid>>;
----重要提示:这不是部分模板专业化的解决方案,而是我在不知情的情况下寻找类型别名。抱歉造成混淆-----
我想做什么
我想将 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'|
我也试过在模板前使用 "typedef",但也没有成功。
如何正确执行这个简单的快捷方式?
你想要的不是偏特化,而是模板类型别名:
template <typename T> using my_mmap = boost::unordered_multimap<boost::uuids::uuid, T, boost::hash<boost::uuids::uuid>>;