From: Andrei Alexandrescu \(See Website for Email\) (andrewalex_at_[hidden])
Date: 2004-07-06 21:56:16
Just sent the message below to clc++m. Any comments are welcome.
There's a library that I understand is being proposed for Boost:
It does useful things, but it runs straight against the commonly given
advice (with which I happen to agree) that one should not override operator,
unless using expression templates that ensure left-to-right evaluation.
So now, in the referenced article, the author makes the comment: "
Overloading operator comma is sometimes viewed as a bad practice .
However, it has been done with success in eg. the Generative Matrix
Computation Library and Blitz to initialize matrices (see ) and ). The
Initialization Library overloads the comma operator in a safe manner by
letting set_cont and set_map return an object that is responsible for the
initialization. Therefore it takes explicit action from the programmer to
begin using the overloaded operator,(). "
I think the mentioned libraries do employ expression templates, while the
initialization library does not. So I am unsatisfied. Anyone here can soothe
my concerns? Is overloading the comma operator considered harmless after
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk