
From: Vladimir Prus <ghost@cs.msu.su>
Rob Stewart wrote:
It's certainly not to be done without understanding the ramifications. Clearly, the average user doesn't know anything about sequence points and those of us aware of them don't always remember all of the rules. Thus, it can be dangerous to overload operator, and thus a coding guideline that warns against it is warranted.
But the same user will be equally unprepared to unspecified evaluation order in
A = get(), get(), get();
and in
A.assign_list(get())(get())(get()) ;
There's nothing specific about operator,();
Ah, but the user that would be confused by those things is also far less likely to do them. The initialization library brings to the fore a dark corner of the language of which most programmers are unware. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;