Boost logo

Boost Users :

Subject: [Boost-users] [ICL] lower(interval_set) doesn't compile
From: John Reid (j.reid_at_[hidden])
Date: 2011-02-18 06:41:02


I'm not sure if I'm getting the wrong end of the stick from the docs or
perhaps I should raise this sort of thing as a bug report?

#include <boost/icl/interval_set.hpp>
namespace icl = ::boost::icl;

void interval_set_intersects() {
        icl::lower( icl::interval_set< int >() );
}

gives:

In file included from
/home/john/Dev/ThirdParty/boost/boost-trunk/boost/icl/associative_interval_container.hpp:16,
from
/home/john/Dev/ThirdParty/boost/boost-trunk/boost/icl/interval_base_set.hpp:24,
from
/home/john/Dev/ThirdParty/boost/boost-trunk/boost/icl/interval_set.hpp:14,
from src/sandbox.cpp:2:
/home/john/Dev/ThirdParty/boost/boost-trunk/boost/icl/concept/interval_associator.hpp:
In function ‘boost::enable_if<
         boost::icl::is_interval_container<boost::icl::interval_set<int,
less, boost::icl::discrete_interval<int, less>, allocator> >,
boost::icl::interval_set<
             int, less, boost::icl::discrete_interval<int, less>,
allocator>::interval_type
>::type boost::icl::lower(const boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator> &)’:
src/sandbox.cpp:6: instantiated from here
/home/john/Dev/ThirdParty/boost/boost-trunk/boost/icl/concept/interval_associator.hpp:229:
error: no match for ternary ‘operator?:’ in ‘boost::icl::is_empty(
         (
             (const boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator> &)(
                 (const boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator> *)object))) ?
boost::icl::identity_element<
         boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator> >::value() :
boost::icl::lower(
         (
             (const boost::icl::discrete_interval<int, less> &)(
                 (
                     const boost::icl::discrete_interval<int, less> *
                 )boost::icl::key_value(
                     (
                         (const boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator> *)object
                     )->boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator>::<
                         anonymous
>.boost::icl::interval_base_set<
                         boost::icl::interval_set<int, less,
boost::icl::discrete_interval<int, less>, allocator>, int, less,
boost::icl::discrete_interval<int, less>, allocator>::begin()))))’

using boost SVN version 68955 and gcc 4.4.3


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net