如何使一个函数只能在c ++中看到一个函数?

Ala*_*aya 1 c++

我怎么能只调用它的函数看到的函数?

定义我想要隐藏的函数,因为私有函数是不够的,因为它仍然可以被类中的其他公共函数看到.

现在我使用lambda表达式来定义函数内部的匿名函数.有没有更好的解决方案?

Bat*_*eba 7

除了使用lambda(你已经拒绝了)之外,你可以在自己的编译单元中实现你的函数,并在该编译单元中的匿名命名空间中编写支持函数.

但是这个支持函数将在类之外,所以你必须传递它所需的所有参数.这可能会变得笨拙但不比一个长长的lambda捕获列表更糟糕.