#5714 closed Bugs (invalid)
replace_all does not allow to replace single chars
Reported by: | anonymous | Owned by: | Pavol Droba |
---|---|---|---|
Milestone: | To Be Determined | Component: | string_algo |
Version: | Boost 1.47.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Following code does not compile:
#include <string> #include <boost/algorithm/string.hpp> using namespace std; using namespace boost; using namespace boost::algorithm; int main() { string str = "abc"; replace_all(str, 'a', 'A'); }
/usr/include/boost/algorithm/string/replace.hpp: In function 'void boost::algori thm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = s td::string, Range1T = char, Range2T = char]': x.cc:11: instantiated from here /usr/include/boost/algorithm/string/replace.hpp:654: error: no matching function for call to 'first_finder(const char&)' /usr/include/boost/algorithm/string/replace.hpp:654: error: no matching function for call to 'const_formatter(const char&)'
Change History (2)
comment:1 by , 11 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 by , 11 years ago
I agree that boost::range modification just to support this case may be undesirable. On the other hand it will be good to provide specialized version of replace_all() and other functions in this library, which are optimized for single characters. Please consider adding them.
Note:
See TracTickets
for help on using tickets.
'a' is not string-type supported by boost::range, therefore it is not a valid argument to function replace_all. Use "a" insteda.