考虑的持续时间下面的代码:的std ::性病::时辰分钟::不同类型
// durations are from std::chrono
auto a = get_duration_1(); // milliseconds, will vary in future versions
auto b = get_duration_2(); // seconds, will vary in future versions
auto c = std::min(a, b);
它不会编译,因为编译器不能实例化,因为不同的参数类型的std::min
正确版本。
当然,现在可以使用std::min<milliseconds>
明确指定类型。在此代码的将来版本中,类型会有所不同。在不知道确切持续时间类型的情况下,通用的方法是什么?
如果没有指定,['标准:: min']现有的专业化(http://en.cppreference.com/w/cpp/algorithm/分钟)[[std :: chrono :: duration]](http://en.cppreference.com/w/cpp/chrono/duration)(并没有),那么没有没有通用(和“好“) 办法。除了自己做这样一个专业。如果你在多个地方需要它,那么这样的专业化可能是一个好主意。 –
[std :: min](http://en.cppreference.com/w/cpp/algorithm/min)没有接受不同参数类型的版本。要么抛出其中一个参数,要么两者兼有。 –
我更改了问题,以便明确显示对通用代码的需求。 –