Date: Thu, 30 Apr 2020 16:40:30 +0300
Gabriel Dos Reis wrote:
> I don’t see an “improvement” from the C++ side to __func__ as increasing C
> compatibility.
>
> It is a C facility and any improvement to it should be deferred to WG14.
> Hence, leave it alone.
Why would it be a problem to use
static constexpr char _ _func_ _[] = "function-name";
in C++? This remains compatible with the C definition, doesn't it?
I'm not sure I see what additional problems this would create. At the
moment,
inline char f()
{
return __func__[0];
}
already causes an ODR violation if __func__[0] doesn't have the same value
in two translation units. Allowing people to instantiate templates with
__func__[0] doesn't seem to add much.
> I don’t see an “improvement” from the C++ side to __func__ as increasing C
> compatibility.
>
> It is a C facility and any improvement to it should be deferred to WG14.
> Hence, leave it alone.
Why would it be a problem to use
static constexpr char _ _func_ _[] = "function-name";
in C++? This remains compatible with the C definition, doesn't it?
I'm not sure I see what additional problems this would create. At the
moment,
inline char f()
{
return __func__[0];
}
already causes an ODR violation if __func__[0] doesn't have the same value
in two translation units. Allowing people to instantiate templates with
__func__[0] doesn't seem to add much.
Received on 2020-04-30 08:43:50