|
Boost : |
From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2006-02-08 05:37:56
Currently, two of the string tests fail to compile with the following error:
cxx: Error: /vol2/boost/boost/boost/algorithm/string/detail/finder.hpp,
line 412: #20
identifier "find_tail_impl" is undefined
detected during:
instantiation of "boost::iterator_range<Iterator>
boost::algorithm::detail::head_finderF::operator()(Forwar
dIteratorT, ForwardIteratorT) const [with
ForwardIteratorT=char *]" at line 254 of
"/vol2/boost/boost/boost/algorithm/string/find.hpp"
instantiation of
"boost::iterator_range<boost::range_result_iterator<C>::t
ype> boost::algorithm::find_head(RangeT &, int) [with
RangeT=std::string]" at line 129 of
"../libs/algorithm/string/test/find_test.cpp"
find_tail_impl( Begin, End, -m_N );
Looking the the code in question (struct head_finderF::operator()) it
contains the following on line 412:
iterator_range<ForwardIteratorT> Res =
find_tail_impl( Begin, End, -m_N );
But find_tail_impl() is not declared until line 486 in the same file. Added
the following declaration
template <typename ForwardIteratorT>
iterator_range<ForwardIteratorT>
find_tail_impl(
ForwardIteratorT Begin,
ForwardIteratorT End,
unsigned int N);
at line 394, just before the definition of struct head_finderF makes the
tests compile and pass ok.
I have to admit I'm not sure that the compiler is right to complain about
this, but it seems reasonable to me. So could the declaration of
find_tail_impl please be added to the file somewhere before it's first used.
TIA, Markus
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk