c++ - 如何编写一个给出两个参数最大值的 C++ 模板?

标签 c++ templates max

两个参数都保证是整数。

我该如何编写 myMax:

myMax<1, 2>; // 2
myMax<3, 2>; // 3  ?

我希望它在编译时评估,而不是运行时。 (然后需要将它与 sizeof 一起用于类型列表,以便为变体分配空间。)

谢谢!

最佳答案

template <int x, int y>
struct myMax
{
    static const int value = (x > y) ? x : y;
};

如果您打算仅将其用于大小,则可以使用 std::size_t 而不是 int

关于c++ - 如何编写一个给出两个参数最大值的 C++ 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150902/

相关文章:

php - 如何在不渲染 Twig 模板的情况下分析它们?

c++ - 在基于策略的设计中多次使用策略

c++ - 模板引用类型推导

mysql - 在 MySQL 中分组时如何获取具有最大日期的行?

java - 此功能的最佳情况是什么?

c++ - 我无法在类中添加除 bool 运算符之外的两个或更多参数

c++ - 打印一个函数会返回一个意外的值,为什么?

c++ - 我应该为 BigInt 类使用什么数据结构

javascript - 从javascript中的所有嵌套数组中找到最大和最小元素

c++ - 递归的意外性能结果