gpt4 book ai didi

c++ - 如何接受可修改和不可修改的参数?

转载 作者:行者123 更新时间:2023-11-28 01:14:31 25 4
gpt4 key购买 nike

我有一个调试宏,我在其中给它一个浮点引用,并期望它有时会修改该变量,如果可以的话。

#define probe(x) implProbe(#x##GETLINE, (x))

void implProbe(const char * loc, float & x){
// this signature is a place holder
...
x = 4.f;
}

但是,我也想对临时变量或文字使用相同的宏,例如 probe(1 + 2)probe(x + y)。在这些情况下,宏不需要具有相同的效果,我不希望看到它的输出,我只希望它不会中断。

float var = 0.f;
probe(var);
// var == 4.f

var = 0.f;
probe(var + 2.f); // this should be legal
// var == 0.f (didn't change)

probe(1.f); // this should be legal

有什么办法可以实现吗?

最佳答案

实现两个重载函数。

void implProbe(const char * loc, float & x){
...
x = 4.f;
}
void implProbe(const char * loc, const float & x){
...
}

关于c++ - 如何接受可修改和不可修改的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59129070/

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