On 04/19/2010 02:41 PM, Eric Poggel wrote:
On 4/16/2010 10:41 PM, Andrei Alexandrescu wrote:
Generally I'd strongly suggest making operations free generic functions
instead of members.
I disagree on this one. It unnecessarily adds more names to an outer
namespace and makes code less readable:
vec1.cross(vec2).project(vec3).length();
vs:
length(project(cross(vec1, vec2), vec3);
The first reads naturally while the second is more like polish notation
and is easier to forget parentheses, as I did.
Notationally I agree - but you are (or at least should be) able to
invoke a nonmember as if it were a member.
Andrei