Sun C++ 5.10 and BGL adjacency_list

I am trying to use the Boost Graph Library from Boost 1.42.0 with Sun Studio 12 update 1 but the adjacency_list.cpp example from the libs/graph/example directory does not compile. Does anyoone have a workaround?
$ CC -V CC: Sun C++ 5.10 SunOS_i386 128229-04 2009/11/25 Usage: CC [ options ] files. Use 'CC -flags' for details
$ CC -library=stlport4 -features=tmplife -features=tmplrefstatic -I/home/nick/boost_1_42_0 -o adjacency_list adjacency_list.cpp "/home/nick/boost_1_42_0/boost/graph/detail/adjacency_list.hpp", line 1722: Error: Could not find a match for boost::detail::get_dispatch<boost::detail::Config, boost::detail::Base, boost::detail::Property>(boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>, unsigned VertexProperties::*, int) needed in boost::get<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undir ectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>, unsigned VertexProperties::*>(unsigned VertexProperties::*, boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>&). "adjacency_list.cpp", line 63: Where: While instantiating "boost::get<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>, unsigned VertexProperties::*>(unsigned VertexProperties::*, boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, Vertex Properties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>&)". "adjacency_list.cpp", line 63: Where: Instantiated from non-template code. "adjacency_list.cpp", line 71: Warning (Anachronism): Assigning int to boost::detail::error_property_not_found. "adjacency_list.cpp", line 71: Error: Cannot cast from int to boost::detail::error_property_not_found. "adjacency_list.cpp", line 82: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 84: Error: The operation "boost::adj_list_vertex_property_map<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::detail::error_property_not_found, boost::detail::error_property_not_found&, std::string EdgeProperties::*>[boost::detail::edge_desc_impl<boost::undirected_tag, void*>]" is illegal. "adjacency_list.cpp", line 93: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 98: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 100: Error: The operation "boost::adj_list_vertex_property_map<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::detail::error_property_not_found, boost::detail::error_property_not_found&, std::string EdgeProperties::*>[boost::detail::edge_desc_impl<boost::undirected_tag, void*>]" is illegal. 7 Error(s) and 1 Warning(s) detected.
I posted a similar question on the Sun C++ forum last year but no one had a solution: http://forums.sun.com/thread.jspa?threadID=5419942 g++ works fine:
$ g++ -I/home/nick/boost_1_42_0 -o adjacency_list adjacency_list.cpp $ g++ --version g++ (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Thanks Nick

On Sun, 7 Feb 2010, Nicholas Brealey wrote:
I am trying to use the Boost Graph Library from Boost 1.42.0 with Sun Studio 12 update 1 but the adjacency_list.cpp example from the libs/graph/example directory does not compile.
Does anyoone have a workaround?
$ CC -V CC: Sun C++ 5.10 SunOS_i386 128229-04 2009/11/25 Usage: CC [ options ] files. Use 'CC -flags' for details
$ CC -library=stlport4 -features=tmplife -features=tmplrefstatic -I/home/nick/boost_1_42_0 -o adjacency_list adjacency_list.cpp "/home/nick/boost_1_42_0/boost/graph/detail/adjacency_list.hpp", line 1722: Error: Could not find a match for boost::detail::get_dispatch<boost::detail::Config, boost::detail::Base, boost::detail::Property>(boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>, unsigned VertexProperties::*, int) needed in boost::get<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undir ectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>, unsigned VertexProperties::*>(unsigned VertexProperties::*, boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>&). "adjacency_list.cpp", line 63: Where: While instantiating "boost::get<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>, unsigned VertexProperties::*>(unsigned VertexProperties::*, boost::adj_list_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, Vertex Properties, EdgeProperties, boost::no_property, boost::listS>::config, boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::listS, boost::vecS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>::config>>&)". "adjacency_list.cpp", line 63: Where: Instantiated from non-template code. "adjacency_list.cpp", line 71: Warning (Anachronism): Assigning int to boost::detail::error_property_not_found. "adjacency_list.cpp", line 71: Error: Cannot cast from int to boost::detail::error_property_not_found. "adjacency_list.cpp", line 82: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 84: Error: The operation "boost::adj_list_vertex_property_map<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::detail::error_property_not_found, boost::detail::error_property_not_found&, std::string EdgeProperties::*>[boost::detail::edge_desc_impl<boost::undirected_tag, void*>]" is illegal. "adjacency_list.cpp", line 93: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 98: Error: The operation "std::ostream<<boost::detail::error_property_not_found" is illegal. "adjacency_list.cpp", line 100: Error: The operation "boost::adj_list_vertex_property_map<boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties, boost::no_property, boost::listS>, boost::detail::error_property_not_found, boost::detail::error_property_not_found&, std::string EdgeProperties::*>[boost::detail::edge_desc_impl<boost::undirected_tag, void*>]" is illegal. 7 Error(s) and 1 Warning(s) detected.
I posted a similar question on the Sun C++ forum last year but no one had a solution: http://forums.sun.com/thread.jspa?threadID=5419942
g++ works fine:
$ g++ -I/home/nick/boost_1_42_0 -o adjacency_list adjacency_list.cpp $ g++ --version g++ (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The Sun compiler has many issues with compiling BGL; the regression tests show many failures. In particular, bundled properties are problematic. I believe the issue was partial specialization on pointer-to-member types, but I am not sure about that. The code should work if you use old-style properties; look at the documentation, book, or other examples and test cases for that style. -- Jeremiah Willcock

Jeremiah Willcock wrote:
On Sun, 7 Feb 2010, Nicholas Brealey wrote:
I am trying to use the Boost Graph Library from Boost 1.42.0 with Sun Studio 12 update 1 but the adjacency_list.cpp example from the libs/graph/example directory does not compile.
(trimmed)
The Sun compiler has many issues with compiling BGL; the regression tests show many failures. In particular, bundled properties are problematic. I believe the issue was partial specialization on pointer-to-member types, but I am not sure about that. The code should work if you use old-style properties; look at the documentation, book, or other examples and test cases for that style.
-- Jeremiah Willcock
I finally managed to figure out what was going wrong. Using BOOST_ASSERT_CONFIG gives an error: "/home/nick/boost_1_42_0/boost/config/compiler/sunpro_cc.hpp", line 128: Error: #error "Unknown compiler version - please run the configure tests and report the results". Sun CC 5.10 defines __SUNPRO_CC as 0x5100 and sunpro_cc.hpp says: // last known and checked version is 0x590: #if (__SUNPRO_CC > 0x590) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # endif #endif So I ran the configure program and produced a config file (see below). Then I ran: $ CC -I /home/nick/boost_1_42_0 -D BOOST_SITE_CONFIG=/home/nick/boost_test2/suncc510.hpp -D BOOST_DETECT_OUTDATED_WORKAROUNDS -o adjacency_list adjacency_list.cpp "/home/nick/boost_1_42_0/boost/type_traits/config.hpp", line 37: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/detail/allocator_utilities.hpp", line 194: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/mpl/aux_/nested_type_wknd.hpp", line 22: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/utility/addressof.hpp", line 64: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/graph/properties.hpp", line 373: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/multi_index/detail/access_specifier.hpp", line 49: Error: The divisor of a remainder must be greater than zero. 12 Error(s) detected. The final error is: #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) && !defined (BOOST_GRAPH_NO_BUNDLED_PROPERTIES) // This compiler cannot define a partial specialization based on a // pointer-to-member type, as seen in boost/graph/subgraph.hpp line 985 (as of // trunk r53912) # define BOOST_GRAPH_NO_BUNDLED_PROPERTIES #endif which is the root cause of the problem. So I ran: $ CC -O -I /home/nick/boost_1_42_0 -D BOOST_SITE_CONFIG=/home/nick/boost_test2/suncc510.hpp -D BOOST_STRICT_CONFIG -o adjacency_list adjacency_list.cpp which compiled without errors and WHEN RUN gives the same output as the g++ version. Regards Nick Config file for Sun CC 5.10 (__SUNPRO_CC as 0x5100). bash-3.00$ CC -V CC: Sun C++ 5.10 SunOS_i386 128229-04 2009/11/25 Usage: CC [ options ] files. Use 'CC -flags' for details bash-3.00$ // (C) Copyright Boost.org 2001. // Do not check in modified versions of this file, // This file may be customised by the end user, but not by boost. // // Use this file to define a site and compiler specific // configuration policy, this version was auto-generated by // configure on Sat Feb 13 15:47:40 GMT 2010 // With the following options: // CXX = CC // CXXFLAGS = -I./../.. -I./../../libs/config/test -library=stlport4 -DBOOST_NO_CONFIG // LDFLAGS = -library=stlport4 // LIBS = -lrt -lm -lpthread // // define this to disable all config options, // excluding the user config. Use if your // setup is fully ISO complient, and has no // useful extentions, or for autoconf generated // setups: #ifndef BOOST_NO_CONFIG # define BOOST_NO_CONFIG #endif // define if you want to disable threading support, even // when available: // #define BOOST_DISABLE_THREADS // define if you want the regex library to use the C locale // even on Win32: // #define BOOST_REGEX_USE_C_LOCALE // define this is you want the regex library to use the C++ // locale: // #define BOOST_REGEX_USE_CPP_LOCALE // // options added by configure: // #define BOOST_MSVC6_MEMBER_TEMPLATES #define BOOST_HAS_UNISTD_H #define BOOST_HAS_STDINT_H #define BOOST_HAS_SLIST #define BOOST_HAS_SIGACTION #define BOOST_HAS_SCHED_YIELD #define BOOST_HAS_PTHREADS #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE #define BOOST_HAS_PARTIAL_STD_ALLOCATOR #define BOOST_HAS_NL_TYPES_H #define BOOST_HAS_NANOSLEEP #define BOOST_HAS_LONG_LONG #define BOOST_HAS_LOG1P #define BOOST_HAS_HASH #define BOOST_HAS_GETTIMEOFDAY #define BOOST_HAS_EXPM1 #define BOOST_HAS_DIRENT_H #define BOOST_HAS_CLOCK_GETTIME #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_TWO_PHASE_NAME_LOOKUP #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_STD_UNORDERED #define BOOST_NO_STATIC_ASSERT #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_RVALUE_REFERENCES #define BOOST_NO_RAW_LITERALS #define BOOST_NO_NULLPTR #define BOOST_NO_LAMBDAS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_MS_INT64_NUMERIC_LIMITS #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_EXTERN_TEMPLATE #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS #define BOOST_NO_DELETED_FUNCTIONS #define BOOST_NO_DEFAULTED_FUNCTIONS #define BOOST_NO_DECLTYPE #define BOOST_NO_CONSTEXPR #define BOOST_NO_CONCEPTS #define BOOST_NO_CHAR32_T #define BOOST_NO_CHAR16_T #define BOOST_NO_0X_HDR_UNORDERED_SET #define BOOST_NO_0X_HDR_UNORDERED_MAP #define BOOST_NO_0X_HDR_TYPE_TRAITS #define BOOST_NO_0X_HDR_TUPLE #define BOOST_NO_0X_HDR_THREAD #define BOOST_NO_0X_HDR_SYSTEM_ERROR #define BOOST_NO_0X_HDR_REGEX #define BOOST_NO_0X_HDR_RATIO #define BOOST_NO_0X_HDR_RANDOM #define BOOST_NO_0X_HDR_MUTEX #define BOOST_NO_0X_HDR_MEMORY_CONCEPTS #define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS #define BOOST_NO_0X_HDR_INITIALIZER_LIST #define BOOST_NO_0X_HDR_FUTURE #define BOOST_NO_0X_HDR_FORWARD_LIST #define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS #define BOOST_NO_0X_HDR_CONDITION_VARIABLE #define BOOST_NO_0X_HDR_CONCEPTS #define BOOST_NO_0X_HDR_CODECVT #define BOOST_NO_0X_HDR_CHRONO #define BOOST_NO_0X_HDR_ARRAY

On Sat, 13 Feb 2010, Nicholas Brealey wrote:
Jeremiah Willcock wrote:
On Sun, 7 Feb 2010, Nicholas Brealey wrote:
I am trying to use the Boost Graph Library from Boost 1.42.0 with Sun Studio 12 update 1 but the adjacency_list.cpp example from the libs/graph/example directory does not compile.
(trimmed)
The Sun compiler has many issues with compiling BGL; the regression tests show many failures. In particular, bundled properties are problematic. I believe the issue was partial specialization on pointer-to-member types, but I am not sure about that. The code should work if you use old-style properties; look at the documentation, book, or other examples and test cases for that style.
-- Jeremiah Willcock
I finally managed to figure out what was going wrong.
Using BOOST_ASSERT_CONFIG gives an error:
"/home/nick/boost_1_42_0/boost/config/compiler/sunpro_cc.hpp", line 128: Error: #error "Unknown compiler version - please run the configure tests and report the results".
Sun CC 5.10 defines __SUNPRO_CC as 0x5100 and sunpro_cc.hpp says:
// last known and checked version is 0x590: #if (__SUNPRO_CC > 0x590) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # endif #endif
So I ran the configure program and produced a config file (see below).
Then I ran:
$ CC -I /home/nick/boost_1_42_0 -D BOOST_SITE_CONFIG=/home/nick/boost_test2/suncc510.hpp -D BOOST_DETECT_OUTDATED_WORKAROUNDS -o adjacency_list adjacency_list.cpp "/home/nick/boost_1_42_0/boost/type_traits/config.hpp", line 37: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/detail/allocator_utilities.hpp", line 194: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/mpl/aux_/nested_type_wknd.hpp", line 22: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/utility/addressof.hpp", line 64: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/iterator/detail/config_def.hpp", line 53: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/graph/properties.hpp", line 373: Error: The divisor of a remainder must be greater than zero. "/home/nick/boost_1_42_0/boost/multi_index/detail/access_specifier.hpp", line 49: Error: The divisor of a remainder must be greater than zero. 12 Error(s) detected.
The final error is: #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) && !defined (BOOST_GRAPH_NO_BUNDLED_PROPERTIES) // This compiler cannot define a partial specialization based on a // pointer-to-member type, as seen in boost/graph/subgraph.hpp line 985 (as of // trunk r53912) # define BOOST_GRAPH_NO_BUNDLED_PROPERTIES #endif
Yes -- I put that in there to make more test cases pass with the Sun compilers.
So I ran:
$ CC -O -I /home/nick/boost_1_42_0 -D BOOST_SITE_CONFIG=/home/nick/boost_test2/suncc510.hpp -D BOOST_STRICT_CONFIG -o adjacency_list adjacency_list.cpp
which compiled without errors and WHEN RUN gives the same output as the g++ version.
Good. Could you please file a ticket for adding your new config file (I don't handle that, and don't remember who does)? Could you also please check whether all of the BGL tests pass with BOOST_GRAPH_NO_BUNDLED_PROPERTIES off on your compiler (you can just comment out the #define for it for testing purposes)? Thank you. -- Jeremiah Willcock
participants (2)
-
Jeremiah Willcock
-
Nicholas Brealey