Date: Sun, 28 Jul 2024 13:22:36 +0200
Hi Alexander,
- as function_name already exists, you better propose something in addition instead of changing the existing function, e.g. function_name_short() or short_function_name()
- the output is implementation defined, but it probably would guide implementers, if two functions would exist
- the signature is helping to uniquely identify the function. If you strip parameters, there could be two functions with the same output (never that there was such a uniqueness guarantee in the first place)
- source_location::current() and source_location::function_name() are consteval/constexpr functions. You could modify the returned string at compile time to your liking, e.g. searching for '(' and removing everything afterwards
Best,
Sebastian
-----Ursprüngliche Nachricht-----
Von:Alexander Christensen via Std-Proposals <std-proposals_at_[hidden]>
Gesendet:So 28.07.2024 13:06
Betreff:[std-proposals] std::source_location::function_name returns more than bargained for
An:std-proposals_at_[hidden];
CC:Alexander Christensen <alex_c007_at_[hidden]>;
Hello there,
On my Windows machine I input "std::source_location::current()" as a function parameter, and from that I extract its "function_name()" member function for logging purposes.
But it returns more than I would expect:
void __cdecl UTC_CommonGameViewportClient::Init(struct FWorldContext &,class UGameInstance *,bool)
I suppose for some purposes this is fine. But I am used to the "__FUNCTION__" macro which returns the name of the function.
Probably it's a good thing to not add too much to the "source_location" struct, but how about making a more nuanced distinction? Here's my idea:
source_location::function_name()
->
"UTC_CommonGameViewportClient::Init"
source_location::function_signature()
->
"void __cdecl UTC_CommonGameViewportClient::Init(struct FWorldContext &,class UGameInstance *,bool)"
For me personally this naming would be more intuitive. Any thoughts on this?
Best,
Alexander
--
Std-Proposals mailing list
Std-Proposals_at_[hidden]
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2024-07-28 11:22:39