Boost logo

Boost :

Subject: Re: [boost] [guidelines] why template errors suck
From: David Abrahams (dave_at_[hidden])
Date: 2010-09-28 13:41:30


At Tue, 28 Sep 2010 19:05:00 +0200,
Andrzej Krzemienski wrote:
>
> Well, I believe I got it wrong. It is concept maps where the specializtion
> is to tke plce. It should read:
>
> explicit concept< typename T > IntOrPair

"explicit concepts" were never part of any accepted proposal ;-)

> {
> int sum_ints_impl( T const& );
> }
>
> concept_map IntOrPair<int>
> {
> int sum_ints_impl( int const& i ) { return i; }
> }
>
> template< IntOrPair type1, IntOrPair type2 >
> concept_map IntOrPair< std::pair<type1, type2> >
> {
> int sum_ints_impl( std::pair<First, Second> const& p ) {
> return sum_ints_impl(p.first) + sum_ints_impl(p.second);
> }
> }
>
> template<IntOrPair T>
> int sum_ints( T const & t )
> {
> return IntOrPair::sum_ints_impl( t );
> }

I think what you wrote is equivalent to what I posted in
http://permalink.gmane.org/gmane.comp.lib.boost.devel/209012

However, as I noted in that message, trying to constrain something to
be either an Int or a Pair is really against the spirit of GP.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk