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++;
        }

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to