假设我的类有一个方法必须从其中调用其他递归方法。递归std :: functional与递归匿名命名空间函数。哪一个使用?
我.h文件中是这样的:
class MyClass()
{
public:
void foo();
};
我的问题是,这些实现会更好(忽略无限循环):
namespace
{
void myRecursiveFunction()
{
myRecursiveFunction();
}
}
void MyClass::foo()
{
myRecursiveFunction();
}
或
void MyClass::foo()
{
std::function<void()> myRecursiveFunction =
[&]()
{
myRecursiveFunction();
};
myRecursiveFunction();
}
,给出myRecursiveFunction()
只会从foo()
?
当然,在现实世界myRecursiveFunction()
确实的东西。我只是不想用不需要的信息填充代码。
如果我只在一种方法中使用它,我所有的班级都可以访问myRecursiveFunction
,这可以吗?
第二个例子甚至编译?为什么你想要创建一个额外的推理层?我没有得到你问题的*点*。 – YSC
@YSC大概这不是什么都没有:从所说的东西中引用了一个private-to-something函数。 – user2864740
@YSC无论如何,wrt递归lambdas:http://stackoverflow.com/questions/2067988/recursive-lambda-functions-in-c11,http://stackoverflow.com/questions/14531993/can-lambda-functions-be -recursive – user2864740