Johan RĂ¥de wrote:
Alisdair,
Let's finish up this issue. Are you going to add the workaround that I proposed?
I believe the discussion in this thread led to the conclusion that my workaround is OK. Aggregates can not have user defined constructors, but they can have user defined assignment operators.
In that case the conclusion was wrong! Aggregates cannot have a user-declared copy-assignment operator. Notice that it is specifically the copy-assignment operator, rather than any other user-declared overloads, including member-templates that might match as a copy-assignment operator (eg, template operator taking non-const reference will match better than implicitly declared copy-assignment) However, what we are talking about appear to be a specific workaround for MSVC7.1. So long as MSVC also have a bug that allows user-declared copy assignment operators in aggregates, I am happy with the workaround. What other platforms require this patch? Should we be checking for MSVC8 as well? I'll also want to update the test suite. Not sure if this is appropriate for 1.34 or if we should hold it back on the mainline. The current release seems stalled, so I am hesitant to mess with anything that might push it back further. OTOH, the patch seems so simple ... -- AlisdairM