[pkg-boost-devel] Fwd: Bug#625093: feel++: FTBFS: stl_uninitialized.h:576:6: error: no matching function for call to 'boost::mpi::allocator<char>::construct(char*)'

Christophe Prud'homme prudhomm at debian.org
Thu May 12 20:44:46 UTC 2011


Hi Steve

here is the simplest program I found

----- t.cpp
#include <boost/mpi.hpp>
------ end of t.cpp

in fact the issue arises with the use of the -std=c++0x flag to use
the new c++ standard

compile without -std=c++0x
g++ -I/usr/include/mpi  -c t.cpp
no errors

try compiling with -std=c++0x
 g++ -I/usr/include/mpi -std=c++0x -c t.cpp

                                               2011-05-12 22:40:17
prudhomm pts/28
In file included from /usr/include/c++/4.6/memory:67:0,
                 from /usr/include/boost/mpi/allocator.hpp:18,
                 from /usr/include/boost/mpi.hpp:22,
                 from t.cpp:3:
/usr/include/c++/4.6/bits/stl_uninitialized.h: In function ‘void
std::__uninitialized_default_n_a(_ForwardIterator, _Size, _Allocator&)
[with _ForwardIterator = char*, _Size = long unsigned int, _Allocator
= boost::mpi::allocator<char>]’:
/usr/include/c++/4.6/bits/vector.tcc:474:8:   instantiated from ‘void
std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp,
_Alloc>::size_type) [with _Tp = char, _Alloc =
boost::mpi::allocator<char>, std::vector<_Tp, _Alloc>::size_type =
long unsigned int]’
/usr/include/c++/4.6/bits/stl_vector.h:592:4:   instantiated from
‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp,
_Alloc>::size_type) [with _Tp = char, _Alloc =
boost::mpi::allocator<char>, std::vector<_Tp, _Alloc>::size_type =
long unsigned int]’
/usr/include/boost/mpi/detail/packed_oprimitive.hpp:96:46:
instantiated from here
/usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: error: no
matching function for call to
‘boost::mpi::allocator<char>::construct(char*)’
/usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: note: candidate is:
/usr/include/boost/mpi/allocator.hpp:168:8: note: void
boost::mpi::allocator<T>::construct(boost::mpi::allocator<T>::pointer,
const T&) [with T = char, boost::mpi::allocator<T>::pointer = char*]
/usr/include/boost/mpi/allocator.hpp:168:8: note:   candidate expects
2 arguments, 1 provided



On Tue, May 10, 2011 at 4:19 AM, Steve M. Robbins <steve at sumost.ca> wrote:
> Hello Christophe,
>
> On Mon, May 09, 2011 at 11:02:52PM +0200, Christophe Prud'homme wrote:
>
>> it seems that there is a problem between boost.mpi and g++-4.6, see
>> below (it works perfectly fine with all previous g++ 4.x (x < 6)
>> versions)
>> unless I am mistaken it has nothing to do with feel++
>>
>> what do you think ?
>
> The error states
>
>> > /usr/include/boost/mpi/allocator.hpp:168:8: note:   candidate expects 2 arguments, 1 provided
>
> That doesn't sound like something that would be triggered by the GCC
> change, but you could be right; things are breaking all over the place
> with GCC 4.6.
>
> Can you create a minimal example that works with gcc 4.4 but not 4.6?
>
> Thanks,
> -Steve
>
>



-- 
Debian Developer - member of Debian Science
http://wiki.debian.org/DebianScience
Prof. at Univ. Grenoble in Applied Math.
http://ljk.imag.fr/membres/Christophe.Prudhomme/



More information about the pkg-boost-devel mailing list