Opened 11 years ago
Closed 11 years ago
#5537 closed Bugs (duplicate)
boost.mpi miscompiles with gcc4.6 and option -std=c++0x
Reported by: | Owned by: | Douglas Gregor | |
---|---|---|---|
Milestone: | To Be Determined | Component: | mpi |
Version: | Boost 1.46.1 | Severity: | Regression |
Keywords: | mpi stdc=c++0x | Cc: | christophe.prudhomme@… |
Description
Hello
boost.mpi with gcc-4.6 and the option -std=c++0x don't get well together here is a very simple example
#include <boost/mpi.hpp>
the issue arises with the use of the -std=c++0x flag to use
the new c++ standard. It use to work properly with previous g++ version
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
This is a duplicate of 5538. Please close.