Рассмотрим этот С++ 1y код (LIVE EXAMPLE):
#include <iostream>
auto foo();
int main() {
std::cout << foo(); // ERROR!
}
auto foo() {
return 1234;
}
Компилятор (GCC 4.8.1) щедро снимает эту ошибку:
main.cpp: В функции 'int main():
main.cpp: 8: 18: ошибка: использование 'auto foo() перед выводом' auto std:: cout < Foo();
^
Как мне переслать-объявить foo()
здесь? Или, может быть, более правильно, можно переслать-объявить foo()
?
Я также попытался скомпилировать код, где я попытался объявить foo()
в файле .h
, определенном foo()
так же, как и выше, в файле .cpp
, включил .h
в мой main.cpp
, содержащий int main()
и вызов foo()
, и построил их.
Произошла одна и та же ошибка.