在我的 C + + 应用程序中(使用 Visual Studio 2010) ,我需要存储一个 std: : 函数,如下所示:
class MyClass
{
public:
typedef std::function<int(int)> MyFunction;
MyClass (Myfunction &myFunction);
private:
MyFunction m_myFunction; // Should I use this one?
MyFunction &m_myFunction; // Or should I use this one?
};
如您所见,我在构造函数中添加了函数参数作为引用。
但是,在我的类中存储函数的最佳方法是什么呢?
我的直觉告诉我,存储引用(甚至是常量引用)是安全的。我希望编译器在编译时为 lambda 生成代码,并在应用程序运行时将这些可执行代码保存在“虚拟”内存中。因此,可执行代码永远不会被“删除”,我可以安全地存储对它的引用。但这是真的吗?