gpt4 book ai didi

c++ - 仅在函数中设置静态变量一次

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:54 27 4
gpt4 key购买 nike

所以我想知道是否可以在函数范围内只设置一次静态变量。例如考虑这个功能:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com