所以我想知道是否可以在函数范围内只设置一次静态变量。例如考虑这个功能:
void projectPointIntoPlane(const Affine3f& plane2xy, Vector3f& p)
{
static Matrix3f P;
P << Vector3f::UnitX(), Vector3f::UnitY(), Vector3f::Zero();
p = plane2xy.inverse() * P * plane2xy * p;
}
我只想设置 P 一次,而不是在每次函数调用时设置,我该如何实现?
最佳答案
您可以在声明中使用 finished()
method of CommaInitializer
来初始化它,而不是声明 P
然后单独对其进行初始化。 :
static const Matrix3f P =
(Matrix3f() << Vector3f::UnitX(), Vector3f::UnitY(),
Vector3f::Zero()).finished();
通过这种方法,您还可以将 P
声明为 const
。
关于c++ - 仅在函数中设置静态变量一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51804321/