
On Sat, 22 Jul 2006 19:55:50 -0400, David Abrahams <dave@boost-consulting.com> wrote:
Dave, wouldn't "support for Borland compilers older than BCB2006" be dropped anyway after 1.34?
I don't know, and I'm not sure it's relevant.
Well, for sure anything below 0x581 is deprecated starting from 1.34.0. I had a look at the Boost.Parameter code in the hope that I could find a workaround but honestly I think there's no hope. For a while boost developers have done heroic efforts to support compilers that not even their vendors cared about. Some of these went ahead and improved. Some others didn't, and I don't believe it's our job to reawaken dead bodies (and this is from someone who liked Borland, years ago). A similar thing is happening with Digital Mars. I've recently found that when faced with something like: template <typename Integer> void f(Integer x); template <typename T> void f(T x) { ...} it thinks they are two different templates and if you attempt a call it yields a message along the lines of "ambiguous call: could be f(Integer) or f(T)". Probably it is internally treating the declaration as a string and comparing the supposed parameter-list substrings, who knows. The point is... it is a "young" compiler, though it exists for many years now, and it's noticeably improving, so we try supporting it. But if it doesn't "keep up" and meet some minimum quality requirements in one year or so, it is deemed. I expect boost code to exploit more and more sophisticated techniques in the next years. And make use of the new C++0x features. And then relying on TR2... Well, you got the point. -- [ Gennaro Prota, C++ developer for hire ]