El 22/09/2014 23:57, Mikael Persson escribió:
It would be tedious and tricky to guarantee that specific members will work for incomplete types, and it might significantly restrict the implementation.
I've found that PIMPL-like idioms might require at least some operations (like the default constructor) to be incomplete type friendly. That would make possible to inline default constructors of types with containers of incomplete types. unique_ptr and shared_ptr also provide this guarantee.
BTW, while testing my new BGL code against the current branch of Boost.Container, I also discovered that many of my unit-tests trigger infinite memory-leaking loops (when sets or lists are used as containers), which was not the case against version 1.54 of Boost.Container. It will take some time to track down where this is coming from, but if it comes from Boost.Container, you'll hear from me again about fixing those bugs ;) (N.B.: it's very possible that the errors are on my side of things, not yours, but I need to investigate it first).
Boost.Container has suffered a lot of changes recently, and it might surely be a Boost.Container bug. Best, Ion