我想通过实现一个通用的容器类来理解C++模板模板。以下是代码:C++模板模板
using namespace std;
template <typename T, template <typename STORETYPE> class Container>
class Store {
public:
~Store() {};
Store() {};
void someFunc(const T &) {};
//...
private:
Container<T> storage;
};
int main(int argc, char *argv[])
{
Store<int,deque> myStore; // error here, won't compile!
}
上面的代码会生成一个编译器错误消息。该错误信息是:
“模板的模板参数具有比其相应的模板的模板参数 商店aStack1不同的模板参数;
我不知道为什么什么问题
如果您只通过deque,您可以使用deque特性来获取其内部类型(deque :: value_type),而不是为容器提供两个模板参数T和Container。 –
Robinson