gpt4 book ai didi

c++ - 使用#define 时出错

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:45 24 4
gpt4 key购买 nike

我定义了一个不在类中的函数

#define BlendLight(b1, b2)  std::max(b1, b2)

然后在类里面我尝试使用它:

float someFunk(float x, float y)
{
return BlendLight(x,y); //Error here - BlendLight marked red (
}

我得到错误:需要一个标识符

我尝试在 Visual Studio 2010 中编译它包含 std::max() header /我添加了算法但错误仍然存​​在(((

最佳答案

目前的代码并没有错。您很可能忘记了

#include <algorithm>

这是头文件,其中 std::max已定义。

另一种可能性是您没有在与要使用它的类相同的文件中定义 BlendLight。在这种情况下,您必须 #include 定义 BlendLight 的头文件。

除此之外,您应该知道您定义的不是函数,而是预处理器宏。在 C++ 中,您应该为此任务使用适当的(可能是 inline)函数,以便您的编译器可以进行类型检查:

#include <algorithm>
// ...
template <class T>
T BlendLight(T x, T y)
{
return std::max(x, y);
}

关于c++ - 使用#define 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970762/

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