Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-02-17 08:32:55


"Peter Dimov" <pdimov_at_[hidden]> writes:

> From: "David Abrahams" <dave_at_[hidden]>
>> "Peter Dimov" <pdimov_at_[hidden]> writes:
>>
>> > I don't see why you expect remove_pointer(T) to work when T is not a
>> > pointer.
>>
>> I think that's a reasonable expectation, if by "work" you mean return
>> the original type without modification. That's what it does for "int"
>> arguments, for example.
>
> I would argue that remove_pointer should cause a compile-time error when
> applied to a non-pointer. *p doesn't just "conveniently" return p when
> applied to a non-pointer.
>
> Either way though, it should be consistent, i.e. if it works for int, it
> should work for everything.

I think silent non-modification is a more-useful behavior; it saves on

  if_<is_pointer<T>, remove_pointer<T>, identity<T> >

which is sometimes what you want.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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