
On Thu, 06 Jul 2006 11:08:12 +0200 Martin Wille <mw8329@yahoo.com.au> wrote:
IMHO, the ongoing discussion highlights some fundamental disagreement on what a string is/should be. There's an immutable string with free functions group and a fat-interface string group. Either approach looks wrong to me when taken alone.
I think you just nailed my thoughts, but I incorrectly aimed them at "prefer immutable." I tend to lean toward the side of providing flexible SAFE interfaces, rather than restricting them. I'm not against immutable. I am against providing ONLY immutable interfaces. I'm not against mutable. I am against providing ONLY mutable interfaces. Most of us probably agree with the latter, probably a fair number of us disagree on the former. No, I'm not in favor of fat interfaces, but I am in favor of providing safe, efficient, flexible interfaces. I think your point about std::string is very important, and may be a better description of "fat" class. What makes a class "fat?" I do not think it is the number of functions (member and free support) provided in the interface, but the number of "roles" the interface attempts to play. Anytime an interface attempts to do "too much" you are asking for trouble. Restrict the job that an interface is trying to do, but allow flexible ways to accomplish that job. Hmmm. Maybe now I'm clear as mud...