为了便于阅读,我喜欢在类声明中使用初始成员变量。在初始化过程中我也很习惯使用lambda(参见片段)。我的问题是在成员函数的声明中使用这样的lambda函数有什么优点或缺点。
class foo
{
private:
int index_ = 5;
int value_ = [](int index)
{
int result = 0;
for( int i = 0;i <index; i++)
result += i;
return result;
}(index_ );
};
编辑: 作为bar :: bar(int index):index_(index){}比bar :: bar(int index){index_ = index;}更优化,无论上面的代码是执行得更好还是只是可读性。