【发布时间】:2013-09-07 22:57:15
【问题描述】:
我正在尝试将 STL 容器作为模板参数传递。在这种情况下,向量。
这是我的非功能代码:
template<template<class> class TContainer, class TObject>
class Foobar
{
public:
explicit Foobar( TContainer<TObject*> & container )
:
container_( container ){}
private:
TContainer<TObject*> & container_;
};
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<IUnknown*> v;
Foobar<std::vector, IUnknown*> bla( v );
return 0;
}
这是我想要做的事情,因为编译器无法接受它吗?
【问题讨论】:
-
@itwasntpete,非常有帮助,谢谢。
-
我的第一条评论是个玩笑...但是在您的代码中存在很多问题。还传递一个类型 (int) 和一个指定的模板类 (vector
) 也是一个设计问题。你可以像here一样开始。 -
请解释一下为什么它不起作用以及您期望它做什么?
-
添加到汤姆的评论中,请至少显示第一个编译器错误。有一个投票结束这个问题,但我认为如果你显示该错误并特别询问它,那么问题将保持开放。
-
你的代码是不言自明的,我想我们可以看到你在做什么