Using boost::container::map on OpenVMS

I am trying to get the boost::container::map to work on OpenVMS (Alpha). I am getting an %CXX-E-BADBASECLS, (1) invalid base class error but have not been able to track it down. If I use std::map instead of boost::container::map in the code then it will work btw. Thanks for any help, SLDR (Stephen L. De Rudder) rdls22 AT tditx.com More Info: OpenVMS V8.2 on Alpha $ cxx /ver HP C++ V7.3-009 for OpenVMS Alpha V8.2 The compile command I am using is: $ cxx/stand=strict_ansi/list/show=all/inc=userdisk4:[boost_1_49_0] t.cpp I have enclosed the example code and the section of the listing output from the cxx compile. #include <tree> #include <stdio.h> #include <stdlib.h> #include <boost/container/string.hpp> #include <boost/container/map.hpp> #define cwstring std::string class SecPrivOrderRec { public: boost::container::map<long, bool> orderMap; //map order -> grant }; class SecPrivOrderMap { public: boost::container::map<long, SecPrivOrderRec> privMap; //map priv -> order/grant }; class SecUserProfCompPrivMap { public: SecUserProfCompPrivMap(); bool valid; SecPrivOrderMap keyPrivMap; // map priv -> order }; SecUserProfCompPrivMap::SecUserProfCompPrivMap() { this->valid = false; } class SecUserProfPrivMap { public: SecUserProfPrivMap(); bool valid; boost::container::map<long, long> compPrivMap; // map priv -> order boost::container::map<cwstring, SecUserProfCompPrivMap> keyMap; // map comp -> key }; SecUserProfPrivMap::SecUserProfPrivMap() { this->valid = false; } class SecUserProfMap { public: boost::container::map<cwstring, SecUserProfPrivMap> compMap; // map comp -> priv }; int main(int argc, char **argv) { boost::container::map<std::string, int> j1; j1["foobar"]=22; boost::container::map<cwstring, SecUserProfMap> userProfileMap; //map profile -> comp -> key -> priv long maxndx = 10000; long maxndx2 = 1; int testtype = 0; char ndxstr[16]; cwstring s1 = "my_large_test_user"; cwstring s2 = "this_is_a_key"; cwstring s3; //fprintf(stderr,"Running test type 0 -- expected to consume 10x memory\n"); for (long ndx = 0; ndx < maxndx; ndx++) { //sprintf(ndxstr, "%d", ndx); for (long ndx2 = 0; ndx2 < maxndx2; ndx2++) { s3 = ndxstr; userProfileMap[s1].compMap[s2].keyMap[s3].keyPrivMap.privMap[ndx2].orderMap[1] = true; } } } ========================================================================================================= Source Listing 2-MAR-2012 10:49:24 HP C++ V7.3-009 Page 1910 1-JAN-2012 13:14:12 has_member_function_callable_with.hpp;1 I6 92339 ␍ I6 92340 BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN␍ E namespace boost { namespace container { namespace container_detail { I6 92341 ␍ I6 92342 template <typename Type>␍ I6 92343 class BOOST_PP_CAT(has_member_function_named_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)␍ E class has_member_function_named_select_on_container_copy_construction I6 92344 {␍ I6 92345 struct BaseMixin␍ I6 92346 {␍ I6 92347 void BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME();␍ E void select_on_container_copy_construction(); I6 92348 };␍ I6 92349 ␍ I6 92350 struct Base : public Type, public BaseMixin { Base(); };␍ ..............................1 %CXX-E-BADBASECLS, (1) invalid base class detected during: instantiation of class "boost::container::container_detail::has_member_function_ named_select_on_container_copy_construction<Type>::Base [with Type=const boost::container::container_detail::node_alloc_holder<std ::allocator<std::pair<const std::string, SecUserProfPrivMap>>, boost::container::container_detail::intrusive_rbtree_type <std::allocator<std::pair<const std::string, SecUserProfPrivMap>>, boost::container::container_detail::value_compare_impl<st d::string, std::pair<const std::string, SecUserProfPrivMap>, std::less<std::string>, boost::container::container_detail::select1st<std::pair<c onst std::string, SecUserProfPrivMap>>>>::type, std::less<std::string>>::NodeAlloc]" at line 98 of "USERDISK4:[DERUDDER.BOOST_1_49_0.BOOST.INTRUSIVE.DETAIL] has_member_function_callable_with.hpp;1"
participants (1)
-
De Rudder, Stephen L.