指向自身的 C++ 函数指针
C++ function pointer to self
有没有办法让函数指针指向获取它的函数。
它应该像这样工作:
void foo()
{
assert(<self-pointer> == &foo);
}
(移动表格评论):
我想要一个可以记录某些内容并将日志来源添加到其中的宏。为此,我想使用一个 id,我认为我可以将其作为函数的指针。
function/method 没有 this
的等效项(大约 class 个实例)。
注意 OP 评论说他创建了一个记录器。
在 C++20 中引入了 std::source_location::current(),因此可以避免使用宏。链接文档有很好的示例。
在 C++20 之前创建记录器必须使用宏:
__LINE__
- 当前行号
__func__
- 当前函数名
__FILE__
- 当前文件名
有没有办法让函数指针指向获取它的函数。 它应该像这样工作:
void foo()
{
assert(<self-pointer> == &foo);
}
(移动表格评论):
我想要一个可以记录某些内容并将日志来源添加到其中的宏。为此,我想使用一个 id,我认为我可以将其作为函数的指针。
function/method 没有 this
的等效项(大约 class 个实例)。
注意 OP 评论说他创建了一个记录器。
在 C++20 中引入了 std::source_location::current(),因此可以避免使用宏。链接文档有很好的示例。
在 C++20 之前创建记录器必须使用宏:
__LINE__
- 当前行号__func__
- 当前函数名__FILE__
- 当前文件名