这是我的一个类的一部分:
//...
bool dump_dvars()
{
fstream& refvar{ output_file };
for_each(_array_start, _array_start + *_array_size,
[&refvar](const void* dvar) -> void
{
//work with output_file
});
return true;
}
private:
void** _array_start;
unsigned int* _array_size;
fstream output_file;
};
我想访问Lambda的公共成员函数dump_dvars中的私有成员变量output_file。当我捕获this指针时,我无法访问该变量,因为它是私有的,但我也不想将其设置为公共的!我已经阅读了这个问题(如何使Lambda成为类的友元?),但我不想创建另一个函数。因此,我目前解决这个问题的方法是创建对私有成员的引用,并通过引用捕获列表将该变量传递给我的Lambda。
这是一个好的解决方案和好的风格吗,还是有更好的解决方案吗?
_array_size
是一个指针? - LogicStuff