From 44a93cb4b3961ea38d7ea0e5ce4dff96a6e97074 Mon Sep 17 00:00:00 2001 From: Mauro Russo Date: Tue, 26 Nov 2024 23:24:12 +0100 Subject: [PATCH] Extend examples for [dcl.spec.auto.general] Signed-off-by: Mauro Russo --- source/declarations.tex | 9 +++++++++ 1 file changed, 9 insertions(+) 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}