я получаю следующее сообщение 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
EDIT: Вот шаги для воспроизведения:
% 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]
Это * часть * погрешности. Вы пропустили некоторые окружающие сообщения. –
Я думаю, что вы удалили ошибку, когда вы сократили код. См. [Здесь] (http://ideone.com/qx5yxF). Попробуйте привести пример, который воспроизводит ошибку. – juanchopanza
Код в вопросе действителен и должен компилироваться без ошибок/предупреждений. Сообщение, которое вы указываете, является частью более крупного сообщения, в предыдущей строке содержалось предупреждение/ошибка, и это продолжается, объясняя, как компилятор включил это предупреждение/ошибку. –