在本地函数中,我有运行良好的代码:
struct Divider
{
public:
size_t factor;
size_t next;
};
void foo()
{
auto cmp = [](const Divider& x,const Divider& y) { return x.next > y.next; };
std::priority_queue < Divider,std::vector<Divider>,decltype(cmp)> sieve(cmp);
// ...
}
我现在想将我的sieve
变量移到一个类中。我可以写以下怪物:
class Bar
{
inline static auto cmp = [](const Divider& x,decltype(cmp)> sieve = std::priority_queue < Divider,decltype(cmp)>(cmp);
};
有什么方法可以编写这种默认构造而无需两次指定类型?或者只是以一种更清洁的方式。