【发布时间】:2020-05-28 14:07:51
【问题描述】:
我很高兴 range-v3 终于添加了包含算法。 但我想如果我不必生产一个容器来让它工作。 考虑这个例子:
#include <range/v3/algorithm/contains.hpp>
enum class Status{
OK,
TimedOut,
TryAgain,
PermanentFailure
};
bool f(Status s){
std::array can_retry{Status::OK, Status::TimedOut};
return ranges::contains(can_retry,s);
}
int main(){
return f(Status::TryAgain);
}
在这里,我想将 {Status::OK, Status::TimedOut} 内联到对 contains 的调用中,但它失败了。
有没有办法做到这一点?
附:请不要关于我想要的代码的可维护性/可读性,这只是一个示例代码。 :)
【问题讨论】:
-
你可以提出问题,要求他们添加一个默认模板参数,这样这段代码就可以工作了。