[string_algo][range] compile problem with recent cvs
Hi,
the following snippet used to compile with the last released versions of
boost:
#include
Hi, The range library has undergone some breaking changes recently and I have not time to fix string_algo library yet. So it is currently in non-working state. I'll try to get to it as soon as possible, but I cannot promise any date yet. Regards, Pavol On Tue, May 30, 2006 at 04:07:03PM +0200, Chris Hoeppler wrote:
Hi,
the following snippet used to compile with the last released versions of boost:
#include
#include <string> int main() { char* esc = "\t"; char* sub = "\\t"; std::string str("\tbla\t");
boost::algorithm::replace_all(str, esc, sub);
return 0; }
Trying the current anonymous cvs version, it fails to compile on linux with gcc version 3.3.3. Is this to be expected?
Chris
Error messages:
gcc.compile.c++ bin/gcc/debug/replace_all.o ../../boost-built/boost/range/const_iterator.hpp: In instantiation of `boost::range_const_iterator
': ../../boost-built/boost/algorithm/string/replace.hpp:653: instantiated from `void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::string, Range1T = char*, Range2T = char*]' replace_all.cpp:17: instantiated from here ../../boost-built/boost/range/const_iterator.hpp:37: error: `char*' is not a class, struct, or union type ../../boost-built/boost/algorithm/string/replace.hpp: In function `void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::string, Range1T = char*, Range2T = char*]': replace_all.cpp:17: instantiated from here ../../boost-built/boost/algorithm/string/replace.hpp:653: error: no matching function for call to `first_finder(char* const&)' ../../boost-built/boost/algorithm/string/detail/formatter.hpp: At global scope: ../../boost-built/boost/algorithm/string/detail/formatter.hpp: In instantiation of `boost::algorithm::detail::const_formatF ': ../../boost-built/boost/algorithm/string/formatter.hpp:46: instantiated from `boost::algorithm::detail::const_formatF<RangeT> boost::algorithm::const_formatter(const RangeT&) [with RangeT = char*]' ../../boost-built/boost/algorithm/string/replace.hpp:653: instantiated from `void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::string, Range1T = char*, Range2T = char*]' replace_all.cpp:17: instantiated from here ../../boost-built/boost/algorithm/string/detail/formatter.hpp:35: error: no type named `type' in `struct boost::range_const_iterator ' ../../boost-built/boost/algorithm/string/detail/formatter.hpp:36: error: no type named `type' in `struct boost::range_const_iterator ' ../../boost-built/boost/algorithm/string/detail/formatter.hpp:54: error: no type named `type' in `struct boost::range_const_iterator ' ../../boost-built/boost/algorithm/string/detail/formatter.hpp:54: confused by earlier errors, bailing out "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC -DBOOST_ALL_NO_LIB=1 -I"." -I"../../boost-built" -c -o "bin/gcc/debug/replace_all.o" "replace_all.cpp"
...failed gcc.compile.c++ bin/gcc/debug/replace_all.o...
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Chris Hoeppler wrote:
Hi,
the following snippet used to compile with the last released versions of boost:
#include
#include <string> int main() { char* esc = "\t"; char* sub = "\\t"; std::string str("\tbla\t");
boost::algorithm::replace_all(str, esc, sub);
return 0; }
Trying the current anonymous cvs version, it fails to compile on linux with gcc version 3.3.3. Is this to be expected?
For the moment "yes". The string library needs to upgraded to the newest version of boost.range. -Thorsten
participants (3)
-
Chris Hoeppler
-
Pavol Droba
-
Thorsten Ottosen