Boost logo

Boost :

From: Matthias Troyer (troyer_at_[hidden])
Date: 2004-07-01 09:24:09


Dear Boosters,

I've got a patch to report for the IBM Viisual Age C++ compiler xlC,
and one other problem to discuss. The patch we found necessary for
version 6.0 of the compiler is:

diff -u -r1.26 filtered_graph.hpp
--- boost/graph/filtered_graph.hpp 22 Nov 2003 01:18:37 -0000
1.26
+++ boost/graph/filtered_graph.hpp 1 Jul 2004 14:11:27 -0000
@@ -208,8 +208,8 @@
> edge_iterator;
      typedef typename Traits::edges_size_type edges_size_type;

- typedef typename edge_property_type<Graph>::type
edge_property_type;
- typedef typename vertex_property_type<Graph>::type
vertex_property_type;
+ typedef typename ::boost::edge_property_type<Graph>::type
edge_property_type;
+ typedef typename ::boost::vertex_property_type<Graph>::type
vertex_property_type;
      typedef filtered_graph_tag graph_tag;

      //private:

The original version just gives compiler errors, probably incorrectly
but it does.

The second problem is in the configure files. Who is responsible for
maintaining them? The issue is the following patch I found necessary:

--- boost/config/compiler/vacpp.hpp 22 Jun 2004 12:33:06 -0000
1.16
+++ boost/config/compiler/vacpp.hpp 1 Jul 2004 14:11:23 -0000
@@ -26,7 +26,7 @@
  #endif

  #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+//# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
  # define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
  #endif

in-class member initializtions seem to work flawlessly on this
compiler, so I wonder why BOOST_NO_INCLASS_MEMBER_INITIALIZATION is
defined. Having it defined causes problems with the Boost random
library, which then tries to initializes values of an enum tto a 64-bit
integer, which fails. Is there a reason why
BOOST_NO_INCLASS_MEMBER_INITIALIZATION is defined for this compiler or
is this a bug?

Best regards,

Matthias


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk