时间:2010-05-13 07:52:27

标签: c++ boost

这是我的代码:

#include <string>
#include <boost/algorithm/string/regex.hpp>
string f(const string& s) {
      using namespace boost::algorithm;
      return replace_regex_copy(s, "\\w", "?");
}

这就是编译器所说的:

no matching function for call to ‘replace_regex_copy(const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >&, std::string, std::string)

图书馆的链接:http://www.boost.org/doc/libs/1_43_0/doc/html/boost/algorithm/replace_regex_copy.html

有人可以帮忙吗?谢谢!

PS。 Boost库已经到位,因为它的其他功能可以正常工作。

1 个答案:

答案 0 :(得分:3)

replace_regex_copyboost::regex作为其第二个参数,而不是std::string

std::stringboost::regex显式转换,但不存在隐式转换,因此您可以通过将代码更改为...来修复代码。

string f(const string& s) {
      using namespace boost::algorithm;
      return replace_regex_copy(s, boost::regex("\\w"), "?");
}