这是我的代码:
#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库已经到位,因为它的其他功能可以正常工作。
答案 0 :(得分:3)
replace_regex_copy
将boost::regex
作为其第二个参数,而不是std::string
。
从std::string
到boost::regex
有显式转换,但不存在隐式转换,因此您可以通过将代码更改为...来修复代码。
string f(const string& s) {
using namespace boost::algorithm;
return replace_regex_copy(s, boost::regex("\\w"), "?");
}