[Boost-bugs] [Boost C++ Libraries] #4051: [range][string_algo] Conflict between algorithm names

Subject: [Boost-bugs] [Boost C++ Libraries] #4051: [range][string_algo] Conflict between algorithm names
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-03-29 18:11:55


#4051: [range][string_algo] Conflict between algorithm names
-------------------------------------+--------------------------------------
 Reporter: jewillco | Owner: nesotto
     Type: Bugs | Status: new
Milestone: Boost 1.43.0 | Component: range
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
-------------------------------------+--------------------------------------
 When I try to include both Boost.Range algorithms (in the current trunk
 version) and Boost.Algorithm, using a file such as the following:

 {{{
 #include <boost/algorithm/string.hpp>
 #include <boost/range/algorithm.hpp>
 }}}

 I receive several errors about duplicate definitions. I am using gcc
 4.1.2 on Linux.

 {{{
 ./boost/range/algorithm/find.hpp:28: error: ‘template<class
 SinglePassRange, class Value> typename boost::range_iterator::type
 boost::find(SinglePassRange&, const Value&)’ conflicts with previous using
 declaration ‘template<class RangeT, class FinderT>
 boost::iterator_range<typename boost::range_iterator<C>::type>
 boost::algorithm::find(RangeT&, const FinderT&)’
 ./boost/range/algorithm/lexicographical_compare.hpp:28: error:
 â€˜template<class SinglePassRange1, class SinglePassRange2> bool
 boost::lexicographical_compare(const SinglePassRange1&, const
 SinglePassRange2&)’ conflicts with previous using declaration
 â€˜template<class Range1T, class Range2T> bool
 boost::algorithm::lexicographical_compare(const Range1T&, const Range2T&)’
 ./boost/range/algorithm/lexicographical_compare.hpp:42: error:
 â€˜template<class SinglePassRange1, class SinglePassRange2, class
 BinaryPredicate> bool boost::lexicographical_compare(const
 SinglePassRange1&, const SinglePassRange2&, BinaryPredicate)’ conflicts
 with previous using declaration ‘template<class Range1T, class Range2T,
 class PredicateT> bool boost::algorithm::lexicographical_compare(const
 Range1T&, const Range2T&, PredicateT)’
 }}}

 The using declarations mentioned in the error message are in files such as
 boost/algorithm/string/find.hpp.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4051>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:02 UTC