[intrusive] Compile error on Solaris, SunStudio 12

Can someone please confirm whether this is a bug in the code or in the compiler? == #include <boost/intrusive/list.hpp> using namespace boost::intrusive; struct C : public list_base_hook<> { int i; }; list<C> test_list; == Compiling with g++ 4.2.2 works fine, whereas compiling with CC (CC: Sun C++ 5.9 SunOS_i386 Patch 124864-02 2007/12/18) gives the following errors: "/home/zvrba/COMPILE/boost_1_35_0/boost/intrusive/list.hpp", line 107: Error: po inter is not a member of boost::intrusive::detail::generic_hook<boost::intrusive ::get_list_node_algo<void*>, boost::intrusive::default_tag, 1, 1>. "/home/zvrba/COMPILE/boost_1_35_0/boost/intrusive/list.hpp", line 1409: Wher e: While specializing "boost::intrusive::list_impl<boost::intrusive::listopt<boo st::intrusive::detail::generic_hook<boost::intrusive::get_list_node_algo<void*>, boost::intrusive::default_tag, 1, 1>, unsigned, 1>>". "/home/zvrba/COMPILE/boost_1_35_0/boost/intrusive/list.hpp", line 1409: Wher e: Specialized in boost::intrusive::list<C, boost::intrusive::none, boost::intru sive::none, boost::intrusive::none>. "q.cc", line 10: Where: Specialized in non-template code. (and 10 additional errors about something [const_pointer, iterator_traits, etc.] not being a member of ..) Thanks.

Zeljko Vrba wrote:
Can someone please confirm whether this is a bug in the code or in the compiler?
SunCC is not supported by Intrusive, because it's not standard compliant enough. Intrusive builds fine for all recent MSVC, GCC and Intel. I'm sorry for Sun developers :-(. GCC in Solaris is supported, of course. The same happens with Interprocess. Regards, Ion

On Mon, Mar 31, 2008 at 09:00:35PM +0200, Ion Gaztañaga wrote:
Zeljko Vrba wrote:
Can someone please confirm whether this is a bug in the code or in the compiler?
SunCC is not supported by Intrusive, because it's not standard compliant enough. Intrusive builds fine for all recent MSVC, GCC and Intel. I'm sorry for Sun developers :-(. GCC in Solaris is supported, of course. The same happens with Interprocess.
Yes, if only recent gcc (actually, *any* gcc, but the Sun patched gcc3.3) would support amd64+Solaris10, there'd be no end to my joy. Is there any workaround for your code?

Zeljko Vrba wrote:
On Mon, Mar 31, 2008 at 09:00:35PM +0200, Ion Gaztañaga wrote:
Zeljko Vrba wrote:
Can someone please confirm whether this is a bug in the code or in the compiler? SunCC is not supported by Intrusive, because it's not standard compliant enough. Intrusive builds fine for all recent MSVC, GCC and Intel. I'm sorry for Sun developers :-(. GCC in Solaris is supported, of course. The same happens with Interprocess.
Yes, if only recent gcc (actually, *any* gcc, but the Sun patched gcc3.3) would support amd64+Solaris10, there'd be no end to my joy. Is there any workaround for your code?
Sorry, once I saw SunCC didn't compile my code, I just gave up. I'm afraid that is not easy to make Intrusive workable with SunCC :-( Regards, Ion
participants (2)
-
Ion Gaztañaga
-
Zeljko Vrba