Hello,

I am using boost 1.44 and trying to create shared memory and utilizing the segment manager with a interprocess map.

I continually get a compile error when call the segment manager construct call.  I can’t figure out what the problem is.

I have tried copy/paste example but continue to get the same error. 

 

“/usr/local/boost_1_44_0/boost/interprocess/detail/named_proxy.hpp:123:131: error: no matching function for call to ‘forward(std::less<int>()&)’

 

 

Below is the snippet of  code:

 

       string driver_share = _cc.share_name + "_drivers";

 

       using namespace boost::interprocess;

       //Clean up before creating shared memory

       shared_memory_object::remove(driver_share.c_str());

 

       managed_shared_memory segment(create_only, driver_share.c_str(),65536);

 

 

       typedef boost::process::pid_type key_type;

       typedef boost::posix_time::ptime value_type;

       typedef std::pair<key_type, value_type> pair_type;

 

       typedef boost::interprocess::allocator<pair_type, managed_shared_memory::segment_manager> mem_allocator;

 

       typedef boost::interprocess::map<key_type, value_type, std::less<key_type>, mem_allocator> driver_map;

 

 

 

       const mem_allocator alloc_instance(segment.get_segment_manager());

 

       driver_map *dmap = segment.construct<driver_map>("DriverMap")(

                     std::less<int>(),

                     alloc_instance);

 

 

My include files are as follows:

 

#include <boost/thread/thread.hpp>

#include <boost/date_time/posix_time/posix_time_types.hpp>

#include <boost/interprocess/managed_shared_memory.hpp>

#include <boost/process/all.hpp>

#include <boost/interprocess/allocators/allocator.hpp>

#include <boost/interprocess/containers/map.hpp>

#include <map>

#include <functional>

#include <iostream>

using namespace boost;

using namespace boost::posix_time;

using namespace std;

 

 

 

IF you know of any reason why I get this error that would be great………I will continue to read the boost documentation.

 

 

Regards
carla

 

 


Carla Strembicke
Software Developer



SUBNET Solutions Inc.
www.SUBNET.com
Making Substations More Intelligent
T: 403.270.8885
F: 403.270.9631

#100, 4639 Manhattan Road SE, Calgary, Alberta, Canada; T2G 4B3

CONFIDENTIAL INFORMATION NOTICE: The information contained in this e-mail is privileged, confidential and intended solely for the use of the addressee named above. If the reader of this e-mail is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this e-mail is strictly prohibited. If you received this in error, please contact the sender and destroy all copies of this e-mail. Thank you.