Hi, this is fortunately relatively easy: the push_back is fine, the problem is the argument. Basically the argument passed to the push_back is a pointer, but the vector to which we want to push is a vector of tuples, whose first entry is actually an argument. That is fine, because a Boost tuple can be constructed from its first entry (the other entries will simply be default-constructed).
The point is that up to Boost 1.62 the tuple constructor constructing from the first entry was not marked as "explicit", so the C++ compiler could just invoke it implicitly. Now the constructor has become "explicit", so it must be called explicitly. See the attached patch ("NeighborhoodGroup" is an alias for the tuple type). Giovanni. -- Giovanni Mascellani <g.mascell...@gmail.com> Postdoc researcher - Université Libre de Bruxelles
Author: Giovanni Mascellani <g...@debian.org> Bug-Debian: https://bugs.debian.org/914049 Subject: Fix FTBFS with boost1.67 Make an explicit call to the constructor for NeighborhoodGroup (which is an alias for a specialization of boost::tuple), which is not marked as "explicit". --- progressivemauve-1.2.0+4713+dfsg.orig/src/repeatoire.cpp +++ progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp @@ -1591,7 +1591,7 @@ void processNovelSubsetMatches( GappedMa getSubsets(M_j,-direction*ni_parity*nj_parity).push_back(nj_link); //getExtraSubsets(M_j,-direction*ni_parity*nj_parity).push_back(nj_link); // push M_n onto the heap - novel_subset_list.push_back(M_n); + novel_subset_list.push_back(NeighborhoodGroup{M_n}); //procrastination_queue.push(M_n); novel_subset_count++; }
signature.asc
Description: OpenPGP digital signature