如何根据cpp模板中的实际类型调用整数类型?
How to call an integral types base on actual type in a cpp template?
如何在cpp模板中调用基于实际类型的整数类型?例如,当实际类型为int
时,调用INT_MAX
。而当实际类型为unsigned long
时,调用ULONG_MAX
;
当然我可以只写一个if-else
语句,但是有没有其他方法可以做到这一点?或者写这部分代码的最佳方式是什么?
最好的标准方式就是依靠<limits>
header。已经存在一个模板可以执行您想要的操作。它是 std::numeric_limits
及其静态 max
函数。所以你想要的看起来像这样:
auto max_int = std::numeric_limits<int>::max();
如何在cpp模板中调用基于实际类型的整数类型?例如,当实际类型为int
时,调用INT_MAX
。而当实际类型为unsigned long
时,调用ULONG_MAX
;
当然我可以只写一个if-else
语句,但是有没有其他方法可以做到这一点?或者写这部分代码的最佳方式是什么?
最好的标准方式就是依靠<limits>
header。已经存在一个模板可以执行您想要的操作。它是 std::numeric_limits
及其静态 max
函数。所以你想要的看起来像这样:
auto max_int = std::numeric_limits<int>::max();