Opened 9 years ago

Last modified 9 years ago

#9573 new Bugs

type_rebinder<int,type_2,0> template specialization is not found using Sun's compiler 12.3

Reported by: vladmir.venediktov@… Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: interprocess
Version: Boost 1.55.0 Severity: Showstopper
Keywords: type_rebinder specialization missing ? Cc: vladmir.venediktov@…

Description

#include <boost/interprocess/managed_mapped_file.hpp>
using namespace boost::interprocess;
typedef boost::interprocess::managed_mapped_file::segment_manager segment_manager_t;

/*
Including those 3 lines above , is like code below when Sun's compiler trying to

specialize type_rebinder<int, second_rebind_type_t, 0> and it does not find it, because of int = Ptr and there is no specialization for that type

Compilation command : /appl/toolbox/solarisstudio12.3/bin/CC -v -library=stdcxx4 -D_XOPEN_SOURCE=500 -I/home/uqadir/boost_1_55/boost _1_55_0/ main.cpp

#include <boost/intrusive/set_hook.hpp>
#include <boost/intrusive/detail/generic_hook.hpp>
#include <boost/interprocess/detail/segment_manager_helper.hpp>
#include <boost/intrusive/pointer_traits.hpp>
#include <boost/intrusive/detail/utilities.hpp>
#include <boost/intrusive/detail/memory_util.hpp>

typedef boost::intrusive::bhtraits<boost::interprocess::ipcdetail::intrusive_value_type_impl< boost::intrusive::generic_hook< boost: :intrusive::get_set_node_algo<boost::interprocess::offset_ptr<void, int, unsigned, 0>, 1>, boost::intrusive::default_tag, 1, 3>, cha r, unsigned>, boost::intrusive::rbtree_node_traits< boost::interprocess::offset_ptr<void, int, unsigned, 0>, 1>, 1, boost::intrusive ::default_tag, 3 > second_rebind_type_t ;

typedef boost::intrusive::detail::type_rebinder <int, second_rebind_type_t, 0>::type my_type; <-- no such specialization in boost
*/

main () { }

Attachments (1)

main.cpp (1.5 KB ) - added by vladimir.venediktov@… 9 years ago.
main.cpp

Download all attachments as: .zip

Change History (4)

by vladimir.venediktov@…, 9 years ago

Attachment: main.cpp added

main.cpp

comment:1 by anonymous, 9 years ago

work around suggested by sun's team

Change: ./boost_1_55_0/boost/intrusive/detail/memory_util.hpp in struct type_has_rebind and struct type_has_rebind_other

From: #if !defined (SUNPRO_CC)

To: #if !defined (SUNPRO_CC)
(SUNPRO_CC >= 0x5120)

comment:2 by anonymous, 9 years ago

#if !defined (SUNPRO_CC) | | (SUNPRO_CC >= 0x5120)

comment:3 by viboes, 9 years ago

Component: Noneinterprocess
Owner: set to Ion Gaztañaga
Note: See TracTickets for help on using tickets.