我有一个特殊情况,我想测量关于我的 std::function 使用情况的统计信息。通常诸如花费时间、调用量、经常调用哪个函数以及有时用于测试之类的事情,例如随机抛出 nullptr 以检查我的代码如何处理它。
首先,我正在考虑从 std::func 继承,然后覆盖检索指针的函数 - 或类似的东西 - 但在阅读了几个主题和指南后,我得出结论,这是非常不明智的。
我的第二个想法是简单地创建一个包装类。重构我的整个代码以使用这个包装器而不是 std::function 并不难,所以没关系。我想避免的只是使用不必要和不舒服的用法,就像任何额外的功能一样。例如。:
std::function<...> dummyvar (...);
// Later I can call this dummy var as simply as dummyvar(...)
// I don't want to add extra complexity, like this:
CustomWrapper<...> customdummy (...);
customdummy.getVal()(...);
// Best would be if I could actually "simply" replace all std::function to the Custom Wrapper.
在我目前非常简单的情况下,不会复制 std::function,只需简单地初始化一次,必要时一直调用它。因此,如果它对您有所帮助,您可以考虑这一点并忽略其他东西,例如复制构造函数等(当然,自定义实现不缺少的功能越多越好,但我个人提到的已经足够了)
我不知道如何继续前进,这就是为什么我什至没有附上任何源代码。