Compilation Error in Boost::unordered_detail::hash_table on boost 1_46_1
Hi, I am using Sun CC v5.9 compiler to compile boost 1_46_1. We are getting the following error. Is there a way to get around with this error? "/dvobs/a-ThirdParty/Boost/boost_1_46_1/boost/unordered/detail/table.hpp", line 595: Error: Could not find a match for boost::unordered_detail::hash_table<boost::unordered_detail::T>::find(const boost::unordered_detail::Key&, const boost::unordered_detail::Hash&, const boost::unordered_detail::Pred&) const. "/dvobs/a-ThirdParty/Boost/boost_1_46_1/boost/unordered/detail/table.hpp", line 595: Error: Too many args in template, from boost::unordered_detail::Hash on ignored. Regards, Shinil V.G.
On 30 June 2011 12:53, Shinil Gangadharan <Shinil.Gangadharan@jda.com> wrote:
I am using Sun CC v5.9 compiler to compile boost 1_46_1. We are getting the following error. Is there a way to get around with this error?
"/dvobs/a-ThirdParty/Boost/boost_1_46_1/boost/unordered/detail/table.hpp", line 595: Error: Too many args in template, from boost::unordered_detail::Hash on ignored.
We haven't had a Sun 5.9 tester for some time. So you probably need to either upgrade to Sun 5.10 or use an older version of boost, 1.41 seems to be the last version that was tested on Sun 5.9. FWIW The actual problem seems to be caused by use of out of line template member function of template classes (e.g. 'template<class A> template<class B> void foo<A>::(B b)'), which earlier versions didn't use because of poor compiler support.
I had the same problem with 1_47_0 Changed boost/unordered/detail/table.hpp file in the following way template <class T> template <class Key, class Pred> inline BOOST_DEDUCED_TYPENAME hash_table<T>::node_ptr hash_table<T>::find_iterator(bucket_ptr bucket, Key const& k, Pred const& eq) const and template <class T> template <class Key, class Hash, class Pred> BOOST_DEDUCED_TYPENAME hash_table<T>::iterator_base hash_table<T>::find(Key const& k, Hash const& h, Pred const& eq) const in both cases the return type was taken out of T, after taking it out of hash_table<T> SunCC compiles the code. Strange enough, non-template versions of both functions work with T:: I used Sun Studio 12 (not the 12.2 update) under Solaris 5.9 I also have access to Sun Studio 12 and update 12.2 on Solaris 5.10 (both sparc/x86) I use apache stdcxx 4.2.1 (I find it more standard-compliant without using strange macros _STLP_xxxx than STLport and better fitting the compiler - it completely replaces built-in libCstd, even exception and typeinfo headers) -- View this message in context: http://boost.2283326.n4.nabble.com/Compilation-Error-in-Boost-unordered-deta... Sent from the Boost - Users mailing list archive at Nabble.com.
participants (3)
-
Daniel James
-
koval
-
Shinil Gangadharan