[MPI] compilation error with msvc 64bit due to size_t datatype

Hello, I cannot compile boost.mpi with msvc 8.0 64bit. The complete error message is attached. The reason is that is_mpi_datatypestd::size_t derives from mpl::true_ with the 32 bit compiler while it derives from mpl::false_ with the 64bit compiler. Unfortunately, I do not understand the reason, so I cannot fix it. I would be grad if someone could help. best regards, Andreas Buhr -- Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

Hello Andreas, On Apr 5, 2008, at 2:22 PM, Andreas Buhr wrote:
I cannot compile boost.mpi with msvc 8.0 64bit. The complete error message is attached.
The reason is that is_mpi_datatypestd::size_t derives from mpl::true_ with the 32 bit compiler while it derives from mpl::false_ with the 64bit compiler. Unfortunately, I do not understand the reason, so I cannot fix it.
The problem here is that Boost.MPI isn't properly defining the MPI datatype for "std::size_t". Could you try changing the "#if 0" on line 255 of boost/mpi/datatype.hpp to "#if 1"? - Doug

Hi Doug, Doug Gregor wrote:
I cannot compile boost.mpi with msvc 8.0 64bit. The complete error message is attached.
The problem here is that Boost.MPI isn't properly defining the MPI datatype for "std::size_t". Could you try changing the "#if 0" on line 255 of boost/mpi/datatype.hpp to "#if 1"?
Thanks a lot, that fixed it. I am able to compile boost 1.35 with mpi using MSVC 2005 64bit if "long long" and "unsigned long long" are defined as MPI datatype, the definition enabled by the procedure you described. Andreas

On Apr 16, 2008, at 10:42 AM, Andreas Buhr wrote:
Hi Doug,
Doug Gregor wrote:
I cannot compile boost.mpi with msvc 8.0 64bit. The complete error message is attached.
The problem here is that Boost.MPI isn't properly defining the MPI datatype for "std::size_t". Could you try changing the "#if 0" on line 255 of boost/mpi/datatype.hpp to "#if 1"?
Thanks a lot, that fixed it. I am able to compile boost 1.35 with mpi using MSVC 2005 64bit if "long long" and "unsigned long long" are defined as MPI datatype, the definition enabled by the procedure you described.
Great! The Boost trunk and release branches have a more correct version of this fix, along with another datatype-related fix that solved some problems I ran into with MSVC 2008. - Doug
participants (3)
-
Andreas Buhr
-
Andreas Buhr
-
Doug Gregor