The code snippets help but you need to let us see all of it. Post the
ldu1.cc and ldu1.h files.
There is nothing wrong with std::vector<bool> - it is a basic STL class
and works reliably when used correctly. I think you've got a lifecycle
problem and are accessing an object reference after the referenced
object has been destructed. There are simple tests you can do to verify
that in the debugger but, for now, post all the code in case we can see
something obvious.
The way these classes work is that each represents a frame. We do error
correction for the whole frame at one time and then extract just the
data bits we need in the accessors. So storing the "decoded LCF" is not
how we go about it. Instead, decode and apply the error correction to
the frame content and then let the accessor get just the codeword bits.