
18 Mar
2010
18 Mar
'10
2:23 p.m.
AMDG med ennemri wrote:
I have a problem using managed_shared_memory , I can only read strings that has size less that 16 characters.
This is my server code
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include <boost/interprocess/managed_shared_memory.hpp> #include <utility> #include <iostream>
int main () { using namespace boost::interprocess; typedef std::pair<std::string, int> FileState;
You need to use boost::interprocess::basic_string parameterized with the correct allocator. It works for small string because of SBO, (i.e. small srings are stored within the string class itself, and do not allocate any memory.). In Christ, Steven Watanabe