gpt4 book ai didi

c++ - 有什么方法可以使内部在宏中通用?

转载 作者:行者123 更新时间:2023-11-27 23:14:20 25 4
gpt4 key购买 nike

比如我有一个简单的宏

#define MIN(a, b)   (a) < (b) ? (a) : (b)

我想用

MIN(pow(2, 3) , 10);

内部常见问题。我可以这样做

int a = pow(2, 3);
MIN(a, 10);

我正在寻找一种更易读的更好方法,比如在宏中保留 pow(2, 3) ?是否可以?谢谢!

最佳答案

您可以改用 std::min:

#include <algorithm>

//...
double x = std::min(pow(2, 3) , 10);

通常,您应该更喜欢内联函数而不是宏。如果宏的目的是让它适用于多种类型,您可以使用模板。

template <typename T>
inline T SomeFunction (T x, T y) {
T result;
//...do something with x and y and assign to result
return result;
}

关于c++ - 有什么方法可以使内部在宏中通用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635948/

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