Search code examples
c++textc++11static-librariesdynamic-sizing

dynamically-sized text object with a copy constructor, a trivial assignment operator, and a trivial destructor


I've been shown that a std::string cannot be inserted into a boost::lockfree::queue.

boost::lockfree::queue is too valuable to abandon, so I think I could use very large, fixed length chars to pass the data according to the requirements (assuming that even satifies since I'm having trouble learning about how to satisfy these requirements), but that will eat up memory if I want large messages.

Does a dynamically-sized text object with a copy constructor, a trivial assignment operator, and a trivial destructor exist? If so, where? If not, please outline how to manifest one.


Solution

  • A dynamically-size type with a trivial copy ctor/dtor is not possible. There are two solutions to your problem, use a fixed sized type, or store pointers in the queue:

    boost::lockfree::queue<std::string*> queue(some_size);
    // push on via new
    queue.push(new std::string("blah"));
    // pop and delete
    std::string* ptr;
    if(queue.pop(ptr))
    {
       delete ptr;
    }