【发布时间】:2014-04-29 14:00:25
【问题描述】:
我很难将 std::stoll 打包成 std::function。天真的
std::function<std::int64_t(std::string const&)> obj = std::stoll;
失败,因为std::stoll 是两个函数的重载(cppreference 没有提到 [在询问时]),一个以 std::string 另一个 std::wstring 作为第一个参数.那么我如何得到我想要的呢?
我知道我可以改用调用 std::stoll 的 lambda,但我正在寻找表单的解决方案
auto parser = ???
std::function<std::int64_t(std::string const&)> obj{parser};
【问题讨论】:
-
...cppreference 没有提到
-
仅供参考,Boost 有
overloaded_function。 boost.org/doc/libs/1_55_0/libs/functional/overloaded_function/… -
实际上,cppreference 确实在definition of the functions中提到了这一点
-
@CoffeeandCode 问题发布时没有,因此我在修复它后发表评论。
标签: c++ c++11 overloading std-function