id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12493,Compile error in boost::intrusive with Sun compiler 12.4,kilian.kilger@…,Ion Gaztañaga,"When trying to compile the unit tests in boost::container, I get compile errors in boost/intrusive/detail/to_raw_pointer.hpp on Sun with the 12.4 Sun Studio compiler in non-C++11 mode when using the ancient STLport 4.5. ""/boost/intrusive/detail/to_raw_pointer.hpp"", line 41: Error: Variable p of type void*const is not a structure. ""/boost/container/detail/multiallocation_chain.hpp"", line 66: Where, temwhileinst: While instantiating ""boost::intrusive::detail::to_raw_pointer(void*const&)"". ""/boost/boost/container/detail/multiallocation_chain.hpp"", line 66: Where, teminstend: Instantiated from non-template code. For me it seems that the Sun compiler picks the wrong overload here. Why is the code there not ""disambiguated"" via boost::enable_if? The following code seems to work: template inline typename boost::intrusive::pointer_element::type* to_raw_pointer(const Pointer &p, typename boost::disable_if >::type * = 0) { ... } At least, the unit tests are running. The code in this file did not change in this regards in Boost 1.61. ",Bugs,new,To Be Determined,intrusive,Boost 1.58.0,Problem,,,