Jak zadeklarować funkcję, której typ zwracany jest?

Rozważ toC ++ 1y kod (PRZYKŁAD NA ŻYWO):

#include <iostream>

auto foo();

int main() {
    std::cout << foo();   // ERROR!
}

auto foo() {
    return 1234;
}

Kompilator (GCC 4.8.1) hojnie usuwa ten błąd:

main.cpp: W funkcji „int main ()”:
main.cpp: 8: 18: błąd: użycie „auto foo ()” przed odjęciem „auto”
std :: cout << foo ();
                   ^

Jak mogę przekazać dalejfoo() tutaj? A może bardziej odpowiednioczy można deklarować dalejfoo()?

Próbowałem także skompilować kod, w którym próbowałem zadeklarowaćfoo() w.h plik, zdefiniowanyfoo() tak jak powyżej.cpp plik, w tym.h w moimmain.cpp plik zawierającyint main() i wezwanie dofoo()i zbudowałem je.

Wystąpił ten sam błąd.

questionAnswers(1)

yourAnswerToTheQuestion