这是我的代码
#include <vector>
template <typename T, template<typename> class C = std::vector >
struct FooBar
{
/*codez*/
};
template<typename T>
struct Global{};
int main()
{
struct Local{};
FooBar<Local,Global> k;
}
我收到的错误信息如下:
template argument for ‘template<class T, template<class> class C> struct FooBar’ uses local type ‘main()::Local’
哪个标准部分说明这是错误的?我使用的是gcc 4.5.1。如何修正代码使其能够工作?
--std=c++0x
选项进行编译? - Travis Gockel