Boost logo

Boost :

Subject: Re: [boost] [guidelines] why template errors suck
From: David Abrahams (dave_at_[hidden])
Date: 2010-09-28 21:14:59

At Tue, 28 Sep 2010 15:36:30 -0400,
Daniel Walker wrote:
> >> Was there something unsatisfying about the solution I posted in
> >> ?
> >
> > Nope, I just missed it.
> Oh wait! I think I have another example that's more truthy. :) I'll
> use Boost.ConceptCheck to flesh it out. Let's define the concept of an
> AdditivePair to represent the arguments to binary addition. To model
> the concept a type needs to support first(x), second(x) and add(x) for
> an object x where all three functions have integer values.


> We can now adapt std::pair<int,int> to model the AdditivePair concept.


> And we can also adapt int to model the AdditivePair concept; i.e. int
> is an additive pair where the second member is 0.


> That seems pretty natural to me.

Do you honestly think it's as truthy as the solution I offered?

IMO it's a slight improvement over the list's previous offering, but
making int model AdditivePair is still an odd contortion.
AdditivePair still doesn't represent a real abstraction that you'd use
anywhere else. By contrast, you could make int model ComplexNumber;
that would make real sense and be useful outside of this toy problem.

Are you just exploring, or is there another reason we keep heading
down this path?

Dave Abrahams
BoostPro Computing

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