
Chris Newbold wrote:
From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Bo Persson Sent: Saturday, October 25, 2008 8:13 AM
Yes, but their other choice is to use a Node* as the link between the list nodes. That imposes a different set of constraints on user defined allocators.
The libstdc++ list implementation does not appear to impose the incomplete type constraint on allocators.
No, but they impose the constraint that allocator<T>::pointer must be T*. This is allowed by the (current) standard, but it also recommends implementations to not have this restriction.
I realize that there is practically nothing that I can do about the constraints that Microsoft's list is imposing, but I did want to get a feel for whether the constraint on incomplete types is something that I should expect or whether I should just implement a Microsoft-specific workaround for the case I've run into...
It is a different set of constraints. You choose what is "normal" and what needs a "workaround"... Bo Persson