このC++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' の推定前に 'auto foo()' を使用<br> std::cout << foo();
^
ここで前方宣言するにはどうすればよいfoo()
ですか? または、より適切に、前方宣言することは可能foo()
ですか?
foo()
また、ファイルで宣言しようとしたコードをコンパイルして、上記のファイルと同じよう.h
に定義し、 と への呼び出しを含むファイルに含め、それらをビルドしました。foo()
.cpp
.h
main.cpp
int main()
foo()
同じエラーが発生しました。