ottengo il seguente messaggio compiler¹Che cosa significa "In instantiation of ... required from here"?
main.cpp: In instantiation of ‘void fkt(Foo) [with Foo = int]’:
main.cpp:5:7: required from here
Il binario viene creato in ogni caso, quindi non è un errore. Ma è anche non contrassegnato come un avvertimento. Qual è questo messaggio e perché lo ricevo?
ho ridotto il codice nel seguente esempio
template <typename Foo>
void fkt(Foo f) {}
int main() {
fkt(1);
return 0;
}
¹ gcc 4.7.2
EDIT: Qui i passaggi per riprodurre:
% 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]
È * parte * di un errore. Hai perso alcuni messaggi circostanti. –
Penso che hai rimosso l'errore quando hai ridotto il codice. Vedi [qui] (http://ideone.com/qx5yxF). Si prega di provare fornendo un esempio che riproduce l'errore. – juanchopanza
Il codice nella domanda è valido e deve essere compilato senza errori/avvisi. Il messaggio che stai indicando fa parte di un messaggio più grande, la/e riga/e precedente conteneva un avviso/errore e questo continua a spiegare come il compilatore è entrato in quell'avvertimento/errore –