Я пытаюсь создать общую память с межпроцессным процессом, и у меня возникает ошибка компиляции
код, в котором находится проблема:
typedef bip::basic_string< char,std::char_traits<char>,
bip::allocator<char,bip::managed_mapped_file::segment_manager> > shared_string;
typedef shared_string MappedType;
typedef shared_string MappedType;
typedef const int KeyType;
typedef std::pair<const int, shared_string> ValueType;
//Alias a map of ints that uses the previous STL-like allocator.
//Note that the third parameter argument is the ordering function
//of the map, just like with std::map, used to compare the keys.
typedef bip::map<KeyType, MappedType, std::less<KeyType>, ShmemAllocator> MyMap;
mymap =
seg->find_or_construct<MyMap>("MyMap") //object name
(std::less<int>() //first constructor parameter
,*alloc_inst);
и у меня возникли проблемы при создании карты. Ошибка:
c:\GQSDevEnv\3rdParty\boost\boost_1_36_0\boost\interprocess\containers\map.hpp(437) : error C2535: 'std::pair<_Ty1,_Ty2> boost::interprocess::map<Key,T,Pred,Alloc>::insert(const boost::interprocess::map<Key,T,Pred,Alloc>::value_type &)' : member function already defined or declared
with
[
_Ty1=boost::interprocess::detail::rbtree<const Testing::KeyType,std::pair<const int,Testing::shared_string>,boost::interprocess::detail::select1st<std::pair<const int,Testing::shared_string>>,std::less<const Testing::KeyType>,Testing::ShmemAllocator>::iterator,
_Ty2=bool,
Key=const Testing::KeyType,
T=Testing::MappedType,
Pred=std::less<const Testing::KeyType>,
Alloc=Testing::ShmemAllocator
]
Должен ли я объявить по-другому? Я работал, когда я помещал в std :: pair имя типа Template, но теперь я хочу попробовать указать только int ... Я не знаю, почему эта ошибка ...
Благодарю за внимание