id summary reporter owner description type status milestone component version severity resolution keywords cc 7231 "Boost ICL ""party"" example fails compilation using Clang 3.1" Jess Morecroft Joachim Faulhaber "Test program copied exactly from ""party"" example in boost icl documentation (attached). Compile fails on Mac OS X 10.8 (ML) using latest Clang - version below. (compiles OK using gcc) Looks like Clang is not picking up the operator+= template in the concept header? Probably a Clang bug and if so sorry for the ticket! ... {{{ jessmorecroft:~$ c++ --version Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn) Target: x86_64-apple-darwin12.0.0 Thread model: posix jessmorecroft:~$ c++ test.cpp In file included from test.cpp:5: In file included from /usr/local/include/boost/icl/interval_map.hpp:13: In file included from /usr/local/include/boost/icl/interval_set.hpp:14: In file included from /usr/local/include/boost/icl/interval_base_set.hpp:24: In file included from /usr/local/include/boost/icl/associative_interval_container.hpp:16: In file included from /usr/local/include/boost/icl/concept/interval_set.hpp:13: In file included from /usr/local/include/boost/icl/detail/set_algo.hpp:16: /usr/local/include/boost/icl/functors.hpp:71:18: error: no viable overloaded '+=' { object += operand; } ~~~~~~ ^ ~~~~~~~ /usr/local/include/boost/icl/interval_base_map.hpp:855:5: note: in instantiation of member function 'boost::icl::inplace_plus, std::less>, std::allocator>> >::operator()' requested here Combiner()((*it_).second, co_val); ^ /usr/local/include/boost/icl/interval_base_map.hpp:870:9: note: in instantiation of function template specialization 'boost::icl::interval_base_map, std::less>, std::allocator>>, boost::icl::partial_absorber, std::less, icl::inplace_plus, icl::inter_section, boost::icl::discrete_interval, std::allocator>, boost::posix_time::ptime, std::set, std::less>, std::allocator>>, boost::icl::partial_absorber, less, inplace_plus, inter_section, boost::icl::discrete_interval, allocator>::add_segment, std::less>, std::allocator>>> >' requested here add_segment(inter_val, co_val, it_); ^ /usr/local/include/boost/icl/interval_base_map.hpp:966:9: note: in instantiation of function template specialization 'boost::icl::interval_base_map, std::less>, std::allocator>>, boost::icl::partial_absorber, std::less, icl::inplace_plus, icl::inter_section, boost::icl::discrete_interval, std::allocator>, boost::posix_time::ptime, std::set, std::less>, std::allocator>>, boost::icl::partial_absorber, less, inplace_plus, inter_section, boost::icl::discrete_interval, allocator>::add_main, std::less>, std::allocator>>> >' requested here add_main(rest_interval, co_val, it_, last_); ^ /usr/local/include/boost/icl/interval_base_map.hpp:314:24: note: in instantiation of function template specialization 'boost::icl::interval_base_map, std::less>, std::allocator>>, boost::icl::partial_absorber, std::less, icl::inplace_plus, icl::inter_section, boost::icl::discrete_interval, std::allocator>, boost::posix_time::ptime, std::set, std::less>, std::allocator>>, boost::icl::partial_absorber, less, inplace_plus, inter_section, boost::icl::discrete_interval, allocator>::_add, std::less>, std::allocator>>> >' requested here this->template _add(interval_value_pair); ^ test.cpp:32:11: note: in instantiation of member function 'boost::icl::interval_base_map, std::less>, std::allocator>>, boost::icl::partial_absorber, std::less, icl::inplace_plus, icl::inter_section, boost::icl::discrete_interval, std::allocator>, boost::posix_time::ptime, std::set, std::less>, std::allocator>>, boost::icl::partial_absorber, less, inplace_plus, inter_section, boost::icl::discrete_interval, allocator>::add' requested here party.add( // add and element ^ 1 error generated. }}} " Bugs closed To Be Determined ICL Boost 1.49.0 Problem fixed clang icl