我得到以下compiler¹消息“在这里需要实例化”是什么意思?
main.cpp: In instantiation of ‘void fkt(Foo) [with Foo = int]’:
main.cpp:5:7: required from here
无论如何创建的二进制文件,所以它不是一个错误。但它也是 未标记为警告。这条消息是什么,为什么我得到它?
我的代码减少到下面的例子
template <typename Foo>
void fkt(Foo f) {}
int main() {
fkt(1);
return 0;
}
¹ GCC 4.7.2
编辑:这里重现步骤:
% cat main.cpp
template <typename Foo>
void fkt(Foo f) {}
int main() {
fkt(1);
return 0;
}
% g++ -Wall -Wextra main.cpp
main.cpp: In instantiation of ‘void fkt(Foo) [with Foo = int]’:
main.cpp:5:7: required from here
main.cpp:2:6: warning: unused parameter ‘f’ [-Wunused-parameter]
它是错误的*部分*。你错过了一些周围的消息。 – 2013-03-26 18:43:51
我想你在减少代码时删除了错误。见[这里](http://ideone.com/qx5yxF)。请尝试提供一个重现错误的例子。 – juanchopanza 2013-03-26 18:43:57
问题中的代码是有效的,应该编译时没有错误/警告。您正在指向的消息是更大的消息的一部分,前面的行包含警告/错误,并继续解释编译器如何进入该警告/错误 – 2013-03-26 18:46:18