Boost logo

Boost :

Subject: Re: [boost] [utility] Adding noexcept to boost::declval
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-03-26 22:00:08


On 03/26/2012 06:19 PM, Michel Morin wrote:
> Vicente J. Botet Escriba wrote
>>> Summary:
>>> Defining declval<T>() as add_lvalue_reference<T>::type is wrong;
>>> add_lvalue_reference should be removed!
>> There is something that disturb me by returning just T, doesn't this forces
>> the type T to CopyConstructible?
> Nope. T needs not to be CopyConstructible
> (Note that declval can be used only in unevaluated contexts.)

Even if it doesn't have to be CopyConstructible,
it still can't be an abstract class. On the
other hand, maybe that's okay, since in C++03,
there's no way to create an rvalue of an abstract

>> The idea to use T& instead was to avoid
>> this.
> You shouldn't do this, because this transforms rvalues to lvalues.
>> I have rolled back at revision 77562.
> Thanks, Vicente!
> Minor issue: `#include <boost/type_traits/add_lvalue_reference.hpp>` is
> not removed yet.

In Christ,
Steven Watanabe

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