C++ 尝试从模板化类生成.o时出现“预期类型说明符”

C++ 尝试从模板化类生成.o时出现“预期类型说明符”,c++,templates,object-files,C++,Templates,Object Files,虽然仅使用include编译此文件,但我没有得到任何错误 template <class T, class C = std::vector<T>, class S = std::less<typename C::value_type>, class H = std::less<typename C::value_type> > class MyHeap { 但是当试图从这个类文件生成一个.o时,g++说类C=std::vector需要

虽然仅使用include编译此文件,但我没有得到任何错误

template <class T,
  class C = std::vector<T>,
  class S = std::less<typename C::value_type>,
  class H = std::less<typename C::value_type> > class MyHeap {
但是当试图从这个类文件生成一个.o时,g++说类C=std::vector需要一个类型说明符

这是什么原因?
我对模板一无所知,所以我真的说不出来。

你不能将模板类编译成.o
感谢juanchopanza的回答。

显示您的测试用例,包括编译命令。这不是一个类。它是一个类模板。无法将其编译为对象文件。是否包含向量头?包括。是的,我包括了向量头。不,我不能发布make命令。@ JuangopaZa:你应该能够,因为它是有效的C++源代码,只要包含正确的头文件。当然,生成的对象文件将相当空或接近空。