I've discovered that passing a string
pointer into a boost::lockfree::queue
will cause a memory leak because the string
pointer cannot be fully released.
Is the situation the same for a boost::lockfree::stack
?
The requirement for a boost::lockfree::stack
is:
- T must have a copy constructor
If a regular string
pointer cannot be used, is there any other way a string
can be put into a boost::lockfree::stack
?
Regular string
When I try this
boost::lockfree::stack<string> my_stack(128);
I get these errors
BOOST_STATIC_ASSERT(boost::has_trivial_assign<T>::value);
BOOST_STATIC_ASSERT(boost::has_trivial_destructor<T>::value);
which seems strange to me, probably because of my inexperience, because those are actually the requirements for boost::lockfree::queue
which now strangely has no documentation
- T must have a copy constructor
- T must have a trivial assignment operator
- T must have a trivial destructor