diff --git a/source/declarations.tex b/source/declarations.tex index b3122d3db8..e17190b7bf 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -1836,6 +1836,15 @@ auto g() { return 0.0; } // OK, \tcode{g} returns \tcode{double} auto (*fp)() -> auto = f; // OK auto h(); // OK, \tcode{h}'s return type will be deduced when it is defined +auto j() -> auto; // OK, deduction of \tcode{j}'s return type postponed at the definition +auto (*jp)() -> auto = j; // error, cannot use \tcode{j}'s before deducing its return type +auto (*kp)() -> auto; // error, not a function declaration; needs an initializer +constexpr auto l = + [](auto (*fp)() -> auto) // OK, \tcode{l}'s parameter \tcode{fp} is a function pointer, + { return fp; }; // whose return type will be deduced when \tcode{l} is invoked +int foo(); +static_assert(l(foo) == foo); // OK + \end{codeblock} \end{example} The \keyword{auto} \grammarterm{type-specifier}