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++ - 如何通过 int-descriptor 找出文件名? (或 "can I..?")

c++ - 为什么在以下情况下没有数据竞争?

c++ - 为什么我需要在 move 构造函数的初始化列表中使用 std::move?

c++ - 可变模板参数包转发中的语法差异

c++ - 基于 std::array 的多维数组

C++ 可变参数模板迭代 vector 并比较元素

c++ - 由其他模板类的内部 typedef 定义的类型的模板参数

c++ - 组织一个 C++ 游戏的最佳方式是什么,该游戏涉及用户在路径之间进行选择以便在旅程中取得进展?

c++ - 没有合适的默认构造函数可用 - 默认构造函数在哪里调用?

c++ - 调用初始化列表构造函数的不同方式