Как использовать replace_regex_copy () из библиотеки boost :: алгоритма? - PullRequest
1 голос
/ 13 мая 2010

Это мой код:

#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

Может ли кто-нибудь помочь, пожалуйста? Спасибо!

пс. Ускоренная библиотека на месте, так как другие функции работают нормально.

1 Ответ

3 голосов
/ 13 мая 2010

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"), "?");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...