Subject: Re: [boost] New libraries implementing C++11 features in C++03
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-11-25 10:29:45
On 11/25/2011 01:24 AM, Dean Michael Berris wrote:
> On Fri, Nov 25, 2011 at 7:11 PM, Nathan Ridge <zeratul976_at_[hidden]> wrote:
>> Even for
>> an experienced programmer, and especially with a new library, more often
>> than not your code will initially be broken. To fix it, you need to
>> understand the problem, and you need the library's help to do so.
> This is anecdotal. Hardly convincing in a *logical* and *rational* standpoint.
>> So, since writing wrong code is just as much a reality of programming
>> as writing working code, having a library that helps you fix your code
>> when it's broken is just as important as having a library that runs
>> your working code (OK, maybe not "just as important" - but quite
> You got it wrong here: having a *compiler* that helps you fix your
> code when it's broken is what you want, not a library!
> This is getting tiring because I just keep repeating myself. This is useless.
Of course you're getting nowhere. The idea that
horrible template error messages are all the
compiler's fault and have nothing to do with
the library is utterly insane. The compiler
cannot generate truly good error messages,
because it doesn't have enough information.
A good error message would
a) Indicate the point of the actual user error.
b) Indicate how the code is wrong.
(a) requires the compiler to be able to distinguish
between library bugs and user errors. (b) requires
the compiler to understand the domain of the library.
Both of these are impossible for all practical
purposes. I have yet to find a compiler that can
read my mind.
If anything you can blame the C++ language for
not being able to express these constraints well.