$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Alexander Nasonov (alnsn-mycop_at_[hidden])
Date: 2003-08-27 10:00:18
Alexander Nasonov wrote:
> Fernando Cacciola wrote:
>
>> References are not objects; i.e., you can't really have a reference
>> _stored_ somewhere (even though most implementation do it behind the
>> scenes)
>
> what about reference_wrapper? ;-)
Sorry for posting that before reading the whole post.
> With a tuple<> the situation is different because tuple<T&> is just
> a class with a reference data member, and the language specifically allow
> data members to be references but by means of special rules.
> Since references are not objects, when you have a reference data member
> you're not necessarily adding the data member to the class storage
> (even though most implementations do just that).
You can think of tuple<int&,char&> as it were
struct tuple_int_char
{
int& m0;
char& m1;
// ...
};
variant<int&,char&> would be
union variant_int_char
{
int& m0; // compile error
char& m1;
// ...
};
Despite this analogy I think variant<int&,char&> would be nice. I'm not
insisting though because you can always use reference_wrapper.
-- Alexander Nasonov Remove minus and all between minus and at from my e-mail for timely response