
Jody Hagins <jody-boost-011304@atdesk.com> writes:
Joel, I am really interested to know why you prefer the functional approach in C++, a language which offers both options.
Me, I prefer the immutable and functional approach:
to_upper(to_lower(to_upper(rng)))
Blech. What are the overwhelming reasons for having purely immutable interfaces in C++?
In C++ or any language, functional interfaces tend to make code clearer, for the same reason that "const" is valuable. When values associated with names change, it is usually harder to keep track of what those names mean. Of course, when immutability starts to interfere with expressive power, it can have the opposite effect, but I have learned to prefer immutability until it proves impractical. Also, it's worth noting that immutable types tend to be more amenable to efficient parallelization, so mutability is not necessarily an efficiency win. -- Dave Abrahams Boost Consulting www.boost-consulting.com