0

我正在尝试编译以下内容:

#include <boost/bind.hpp>
#include <boost/functional.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/case_conv.hpp>

...

std::vector<std::string> names;
std::for_each(names.begin(), names.end(), std::bind(boost::algorithm::to_lower<std::string>, _1, std::locale()));

但我得到了错误:

错误 C2664: 'void (WritableRangeT &,const std::locale &)' : 无法将参数 1 从 'boost::arg' 转换为 'std::string &'

在 Visual Studio 中。

我究竟做错了什么?

我是否正确地说 boost::algorithm::to_lower 被编译器视为二进制文件,即使它的第二个参数是默认值?正因为如此,我需要绑定。

4

0 回答 0