指向自身的 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__ - 当前文件名