
"Pavol Droba" wrote:
It definitely seems as a compiler related problem.
BCB has many quirks.
I have commited a fix for trim and case conversion. Can you please verify if it helped?
No the bug was the same. Following changes are needed in the code: a) leading :: before namespace: ::boost::algorithm::detail::trim_begin( should be boost::algorithm::detail::trim_begin( everywhere (BCB doesn't like it). b) the begin() and end() needs to be fully qualified for BCB: boost::algorithm::detail::trim_end( boost::begin(Input), <<== here boost::end(Input), <<== here IsSpace ), on both places where compiler complains. c) The iterator needs to be explicitly declared. I rewrote it into: template<typename SequenceT, typename PredicateT> inline void trim_right_if(SequenceT& Input, PredicateT IsSpace) { SequenceT::iterator it = boost::algorithm::detail::trim_end(boost::begin(Input), boost::end(Input), IsSpace); Input.erase(it, boost::end(Input)); } and template<typename SequenceT, typename PredicateT> inline void trim_left_if(SequenceT& Input, PredicateT IsSpace) { SequenceT::iterator it = boost::algorithm::detail::trim_begin(boost::begin(Input), boost::end(Input), IsSpace); Input.erase(boost::begin(Input), it); } and then it compiles (with your latest CVS version). /Pavel