|
Boost : |
From: alnsn_at_[hidden]
Date: 2004-07-01 00:16:35
David Abrahams wrote:
> Maybe you should show an example of code where the use of ref/cref
> causes a problem.
using namespace std;
using namespace boost;
template<class T>
reference_wrapper<T const> head(vector<T> const& v)
{
return cref(v[0]); // binds with temporary if T == bool
}
int main()
{
bool buf[1] = {};
vector<bool> v(buf, buf + 1);
reference_wrapper<bool const> r = head(v);
}
Similar problem with ref:
int const const_rvalue();
ref(const_rvalue()); // binds with a temporary
Is it possible to protect from this effect at least for ref case?
-- Alexander Nasonov
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk