我有一个类需要使用某种地图.默认情况下,我想使用std::map,但我也希望让用户能够根据需要使用不同的东西(例如std::unordered_map,甚至用户创建一个).
所以我的代码看起来像
#include <map>
template<class Key, template<class, class> class Map = std::map>
class MyClass {
};
int main() {
MyClass<int> mc;
}
Run Code Online (Sandbox Code Playgroud)
但是,g ++抱怨道
test.cpp:3:61: error: template template argument has different template parameters than its corresponding template template parameter
template<class Key, template<class, class> class Map = std::map>
^
test.cpp:8:14: note: while checking a default template argument used here
MyClass<int> mc;
~~~~~~~~~~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/map:781:1: note: too many template parameters in template template argument
template <class _Key, class _Tp, …Run Code Online (Sandbox Code Playgroud)