boostorg / boostorg/algorithm

variadic min/max/minmax

未关闭
#119 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
131
派生
117
PR 合并指标
30 天内没有已合并 PR

描述

Hello,
for min/max/minmax with multiple parameters there are only functions per std::initializer_list:
https://en.cppreference.com/w/cpp/algorithm/min
https://en.cppreference.com/w/cpp/algorithm/max
https://en.cppreference.com/w/cpp/algorithm/minmax
The parameters are always passed by value and not by reference and the result is also a value. This is a problem with types like std::array, std::string, etc.

Since the compare class cannot be the last function parameter in a variadic implementation (as in the std implementations) another position must be found, possibilities:
- first function parameter: 2 implementations would be needed each, once with compare class and once without. I don't find that useful.
- first template parameter: only one implementation is needed with default template parameter(s).

A simple variadic implementation could look like this:
[minmax_variadic.hpp.txt](https://github.com/boostorg/algorithm/files/11857077/minmax_variadic.hpp.txt)

minmax needs 2 compare classes (each for min and max) - this is more flexible.

thx
Gero

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。