Boost C++ Libraries: Ticket #11908: mpi_process_group.cpp uses undefined class 'std::list' https://svn.boost.org/trac10/ticket/11908 <p> Errors from building boost: </p> <p> .\boost/graph/distributed/detail/mpi_process_group.ipp(137) : error C2976: 'std::list' : too few template arguments </p> <blockquote> <p> .\boost/detail/container_fwd.hpp(134) : see declaration of 'std::list' </p> </blockquote> <p> .\boost/graph/distributed/detail/mpi_process_group.ipp(137) : error C2079: 'boost::graph::distributed::mpi_process_group::impl::sent_batches' uses undefined class 'std::list' </p> <p> There seems to be a problem where it is impossible to build the mpi components of boost graph etc. because of a lack of definition of list. I have reproduced this with just the file </p> <p> c:\Program Files\boost\boost_1_60_0\libs\graph_parallel\src\mpi_process_group.cpp. </p> <p> A forced include of </p> <p> C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\list </p> <p> allows error free compilation. </p> <p> </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11908 Trac 1.4.3 terry lyons <tlyons@…> Wed, 13 Jan 2016 00:24:54 GMT attachment set https://svn.boost.org/trac10/ticket/11908 https://svn.boost.org/trac10/ticket/11908 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">win64_msvc-9.7z</span> </li> </ul> Ticket terry lyons <tlyons@…> Sun, 17 Jan 2016 19:29:22 GMT attachment set https://svn.boost.org/trac10/ticket/11908 https://svn.boost.org/trac10/ticket/11908 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">msvc_msmpi_parallel_graph.7z</span> </li> </ul> Ticket terry lyons <tlyons@…> Sun, 17 Jan 2016 19:56:15 GMT <link>https://svn.boost.org/trac10/ticket/11908#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11908#comment:1</guid> <description> <p> Attempts to build boost for msvc environments with MS MPI fall down in two places. </p> <p> One reason is that mpi.jam needs modifying to be aware of current path and environment conventions (there is also a workaround definition needed for an irritating broken Microsoft macro). </p> <p> Then there are these problems with graph documented above. Adding an include of &lt;list&gt; to mpi_process_group.ipp and added the long list of "std::" includes one finds in mpi_process_group.ipp to mpi_process_group.cpp including &lt;list&gt; (not tested that these latter includes are really needed) fix these errors. </p> <p> After both changes are implemented boost builds error free on msMPI v7. I wonder how long this has been broken? It seems strange to me as I would have thought that making sure boost worked on the MS stack was important to many people. </p> <p> It would be good to have this properly fixed. I have uploaded the modified mpi.jam, mpi_process_group.ipp and mpi_process_group.cpp . I hope they are useful. </p> <p> I should add - when I say error free, I mean error free, as there are plenty of warnings about size_t being converted to int so maybe it still fails on some test! </p> <p> I realise that this is all written by volunteers and I am very grateful, but I am surprised that one finds these 64/32 conversion errors in mature code such as boost and hope it does not lead to malicious opportunities for denial of service etc. in some loop. </p> </description> <category>Ticket</category> </item> </channel> </rss>