gpt4 book ai didi

c++ - 使用 C++ 的编译时 RAII 行为类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:18 26 4
gpt4 key购买 nike

我知道这听起来有点奇怪,但这是我想做的:假设我有一个函数 void f() 并且我想为此方法添加跟踪。我想通过跟踪消息(例如“输入函数 f”和“退出函数 f”)来跟踪此函数的输入和函数的退出。我不想为入口和导出添加手动跟踪条目,因为我可能会错过一些返回路径。因此可以在编译时使用模板魔术并自动生成这些字符串。即我想要实现的是

void f()
{
some_template<magic>("f");
}

这应该在构造函数中添加跟踪消息“Entered function f”,在析构函数中添加“Exited function f”。我希望它在编译时不创建任何运行时对象。在 C++ 中可能吗?如果可以实现,我可以在哪里找到更多信息的任何指示?

最佳答案

只有在运行时才知道方法离开的点,因为任何类型的异常都可能发生在代码中的任何点(一般来说)。因此,这里不可能有编译时解决方案。

关于c++ - 使用 C++ 的编译时 RAII 行为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com