c++ - C++ 11中的最小和最大可变参数模板变体?

标签 c++ c++11 variadic-templates initializer-list stl-algorithm

minmax(以及 minmax 就此而言)有新的 initializer_list 变体,但没有Variadic Template 变体?

因此,这是可以的:

int a = min( { 1,2,a,b,5 } );

但这不是:

int b = min( 1,2,a,b,5 ); // err!

我想,很多人会期望 Variadic Templates 可以轻松实现这一点,因此他们可能会感到失望。

我会说使用 V.T.对于 minmax 会有点矫枉过正

  • 可变参数模板能够处理多种类型
  • initializer lists 根据设计检查所有类型是否相同

因此 I.L.更适合这项任务。

我的解释正确吗?

最佳答案

您的解释是正确的。 N2772包含更深入的基本原理。

关于c++ - C++ 11中的最小和最大可变参数模板变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167834/

相关文章:

c++ - 重载 == 并与 nullptr 进行比较?

c++ - 在 move 构造函数中窃取

c++ - 完美转发 C++ 重载和模板化仿函数及其参数

c++ - C++11 中的非类型可变函数模板

c++ - 如果在 WinXP 上的调试版本中使用 boost (C++) 库,则无法执行程序

c++ - 店里价格翻倍?

c++ - 在 lambda 函数语法中, 'capture list' 有什么用途?

c++ - 为什么 std::unique_ptr 不允许类型推断?

c++ - 可变参数模板参数包推演失败

c# - 如何在 C++ boolean 表达式中计算指针?