Na kaprys, starałem się określić główną funkcję jako funkcję szablonu przy użyciu szczęk 2.9:Potrzebujesz zacytować standardowy o legalności głównej funkcji jako funkcji szablonu
template <typename T = void>
int main(int argc, char **argv)
{
}
i otrzymała następujący błąd.
error: 'main' cannot be a template
int main(int argc, char **argv)
^
Czy ktoś wie, co sekcja normy zabrania tego i jaki jest odpowiedni tekst?
Niezależnie od tego, co mówi standard, jak można się spodziewać, że linker dowie się, że 'główny' jest twoim punktem wejścia? –
W moim oryginalnym wpisie niepoprawnie stwierdziłem, że używałem clang 2.0, kiedy powinienem powiedzieć klang 2.9. Od tego czasu to poprawiłem. –
@DennisZickefoose - Cóż, miałem trochę nadziei, że fakt, że nazwa ta została nazwana 'main' będzie wskazówką. Oczywiście "" jest problematyczne, ale ponieważ jest to szablon funkcji, każdy inny przypadek możemy zmodyfikować, aby użyć inferencji typu, tak aby można było go wywołać bez jawnego szablonu goo. –