使用auto/deltype推导数组类型



为了制作字符串和绑定函数的std::对,我成功地完成了以下

auto f1 = std::make_pair(std::wstring(L"send_order"),std::bind(&RESTListener::send_order, this, std::placeholders::_1));
auto f2 = std::make_pair(std::wstring(L"on_cancel_order"), std::bind(&RESTListener::on_cancel_all, this, std::placeholders::_1));
auto connectors = std::array<decltype(f1),2>({ f1,f2 });

有没有一种方法可以进一步自动推断数组的类型,这样我就可以按照的方式键入一些东西

auto connectors = std::array<?????,2>({std::make_pair(std::wstring(L"send_order"),std::bind(&RESTListener::send_order, this, std::placeholders::_1)),std::make_pair(std::wstring(L"on_cancel_order"), std::bind(&RESTListener::on_cancel_all,this, std::placeholders::_1))});

@nwp指出,更简单的解决方案是记住,std::initializer_list是在执行auto-foo={,}时创建的。因此,一个更简洁的解决方案是

auto connectors = {std::make_pair(std::wstring(L"send_order"),std::bind(&RESTListener::send_order, this, std::placeholders::_1)),
                   std::make_pair(std::wstring(L"on_cancel_order"), std::bind(&RESTListener::on_cancel_all, this, std::placeholders::_1)) };

最新更新