C++ Logo

sg7

Advanced search

Re: [SG7] [isocpp-ext] CWG1962+CWG2362 type of __func__ / __func__ should be constexpr

From: Peter Dimov <pdimov_at_[hidden]>
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.

Received on 2020-04-30 08:43:50