$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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