C++ Logo

std-discussion

Advanced search

Re: The scope of the function-local predefined variable.

From: Vladimir Grigoriev <vlad.moscow_at_[hidden]>
Date: Thu, 08 Dec 2022 19:32:04 +0300
Well, and what about this declaration
 
void h( auto x ) requires requires { sizeof ( x ) == sizeof __func__; };
 
Is it valid?
 
As it is said in the Standard the function-local predefined variable has function parameter scope.
 
With best regards
(Vlad from Moscow)
You can meet me at http://cpp.forum24.ru/ or www.stackoverflow.com or http://ru.stackoverflow.com
 
  
>Четверг, 8 декабря 2022, 15:24 +03:00 от language.lawyer_at_[hidden]:
>
>> According to the C++ 20 Standard (Reference: 6.4.4 Function parameter scope)
>> «1 A function parameter (including one appearing in a lambda-declarator) or function-local predefined variable (9.5) has function parameter scope….»
>
>The next sentence: «The potential scope of a parameter or function-local predefined variable begins at its point of declaration»
>
>[basic.scope.pdecl]/9: «The point of declaration for a function-local predefined variable is immediately before the function-body of a function definition.»
>
>> So should this function declaration be valid?
>>
>> void f( size_t n = sizeof __func__ );
>
>No.
>
>> Pay attention to that there is used a function declaration that is not the function definition.
>
>There is no point of declaration of __func__ here, then.
 

Received on 2022-12-08 16:32:28