我想通過實現一個通用的容器類來理解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