Boost logo

Boost :

Subject: Re: [boost] [guidelines] why template errors suck
From: Eric Niebler (eric_at_[hidden])
Date: 2010-09-27 18:09:16

On 9/27/2010 5:06 PM, David Abrahams wrote:
> At Mon, 27 Sep 2010 15:57:49 -0400, Eric Niebler wrote:
>> I want to say that a SpiritParser is a SpiritNode<plus> OR a
>> SpiritNode<right_shift> OR a SpiritNode<terminal> (the plus and
>> right_shift concepts being recursively defined in terms of
>> SpiritParser,
> I showed you how to handle it above.

You showed me (in broken code according to Sebastian) how to define a
concept that, AFAICT, is useless.

> You're thinking about this the wrong way. Concepts are a rule-based
> system, and you're approaching them functionally. It's a totally
> different programming paradigm.

This doesn't help me understand it.

>> the terminal concept having little more than a
>> value_type typedef and a member), the intersection of all those
>> concepts would have exactly nothing. So I couldn't do anything with
>> it from a constrained context. What have I missed? How is the
>> SpiritParser concept you've defined above supposed to be used?
> Heck if I know; it's your library, man! It's empty because I don't
> know what operations your operator= needs from it.

<shrug> I leave this conversation as I leave every conversation about
concepts: just as confused as when I started. I write template libraries
and care about error messages. Concepts were billed as a way to improve
error messages from template libraries. And yet nobody can tell me how
to actually use concepts to implement my libraries and improve error

Eric Niebler
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at