[Debian-med-packaging] Bug#833958: Building Dindel 1.01 with newer Boost (1.61)

Sascha Steinbiss satta at debian.org
Wed Aug 10 22:17:15 UTC 2016


Hello,

I am writing on behalf of the Debian Med Project, which maintains a Dindel package for the Debian operating system. In our next Debian release, we are preparing to switch to Boost 1.61 as the default version. However, this caused various problems when trying to build the source of Dindel 1.01.  

In particular, I was wondering how to make BOOST_FOREACH work with the std::sets in this version. Unfortunately I don’t have much Boost experience myself, being more of a plain C developer. I hope you can be of a little help, or — in case you are still maintaining Dindel — provide a version compatible with Boost 1.61 (and GCC 6, if possible).

Many thanks in advance, and best regards
Sascha

P.S. Here’s an example build error:

DInDel.cpp:1985:7: note: in expansion of macro ‘BOOST_FOREACH’
      BOOST_FOREACH(int r, selReads) {
      ^
foreach.hpp:644:96: error: no matching function for call to ‘encode_type(std::set<int>&, boost::is_const<std::set<int> >*)’
    (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL)))
                                                                                    ^
foreach.hpp:768:9: note: in expansion of macro ‘BOOST_FOREACH_TYPEOF’
      , BOOST_FOREACH_TYPEOF(COL))
        ^~~~~~~~~~~~~~~~~~~~
foreach.hpp:808:35: note: in expansion of macro ‘BOOST_FOREACH_NEXT’
              _foreach_continue ? BOOST_FOREACH_NEXT(COL) : (void)0)                \
                                  ^~~~~~~~~~~~~~~~~~
DInDel.cpp:1985:7: note: in expansion of macro ‘BOOST_FOREACH’
      BOOST_FOREACH(int r, selReads) {
      ^
foreach.hpp:309:22: note: candidate: template<class T> boost::foreach_detail_::type2type<T>* boost::foreach_detail_::encode_type(T&, mpl_::false_*)
inline type2type<T> *encode_type(T &, boost::mpl::false_ *) { return 0; }
                     ^~~~~~~~~~~
foreach.hpp:309:22: note:   template argument deduction/substitution failed:
foreach.hpp:644:91: note:   cannot convert ‘boost::foreach_detail_::is_const_<std::set<int> >(selReads)’ (type ‘boost::is_const<std::set<int> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
    (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL)))
                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
foreach.hpp:768:9: note: in expansion of macro ‘BOOST_FOREACH_TYPEOF’
      , BOOST_FOREACH_TYPEOF(COL))
        ^~~~~~~~~~~~~~~~~~~~
foreach.hpp:808:35: note: in expansion of macro ‘BOOST_FOREACH_NEXT’
              _foreach_continue ? BOOST_FOREACH_NEXT(COL) : (void)0)                \
                                  ^~~~~~~~~~~~~~~~~~
DInDel.cpp:1985:7: note: in expansion of macro ‘BOOST_FOREACH’
      BOOST_FOREACH(int r, selReads) {
      ^
foreach.hpp:312:30: note: candidate: template<class T> boost::foreach_detail_::type2type<T, mpl_::bool_<true> >* boost::foreach_detail_::encode_type(const T&, mpl_::true_*)
inline type2type<T, const_> *encode_type(T const &, boost::mpl::true_ *) { return 0; }
                             ^~~~~~~~~~~
foreach.hpp:312:30: note:   template argument deduction/substitution failed:
foreach.hpp:644:91: note:   cannot convert ‘boost::foreach_detail_::is_const_<std::set<int> >(selReads)’ (type ‘boost::is_const<std::set<int> >*’) to type ‘mpl_::true_* {aka mpl_::bool_<true>*}’
    (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL)))
                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
foreach.hpp:768:9: note: in expansion of macro ‘BOOST_FOREACH_TYPEOF’
      , BOOST_FOREACH_TYPEOF(COL))
        ^~~~~~~~~~~~~~~~~~~~
foreach.hpp:808:35: note: in expansion of macro ‘BOOST_FOREACH_NEXT’
              _foreach_continue ? BOOST_FOREACH_NEXT(COL) : (void)0)                \
                                  ^~~~~~~~~~~~~~~~~~
DInDel.cpp:1985:7: note: in expansion of macro ‘BOOST_FOREACH’
      BOOST_FOREACH(int r, selReads) {


More information about the Debian-med-packaging mailing list