【发布时间】:2011-11-10 14:12:21
【问题描述】:
template <typename Z> Z myTemplate <Z> :: popFromVector ()
{
if (myVector.empty () == false)
return myVector.pop_back ();
return 0;
}
int main ()
{
myTemplate <int> obj;
std :: cout << obj.popFromVector();
return 0;
}
错误:
error: void value not ignored as it ought to be
AFAI 可以看到,popFromVector 的返回类型不是 void。我错过了什么?
当我在 main() 中注释掉这个调用时,错误消失了。
【问题讨论】:
-
你确定这是来自编译器的错误信息吗?你用的是什么编译器?
-
std::vector<>::pop_back的返回值却是void。你想要像{Z x=myVector.back(); myVector.pop_back(); return x; }这样的东西。 -
什么是
myVector?哪里出错了? -
@user786653 这很有帮助,谢谢。如果您将其发布为答案,我会接受。
-
@user786653 现在你还没有回复...