Vectors of references
Sorry to send by this path; news server not
locally established.
Scott Meyers suggested this venue as the
proper place for this query. Basically,
I don't see how to create a vector of
reference, but don't see a particular
reason in principle that it couldn't
be done.
Thanks!
Larry Brunelle
--
With code like this,
struct testStruct
{
int foobis;
};
this works fine:
testStruct& ref1 = ts;
testStruct& ref2 = ref1;
That is, I can copy a reference.
Howsomever, I can't put it into a vector
(which, of course, would involve making
a copy).
In fact, I can't even define a vector of
reference.
The following code
vector<testStruct& v1;
stimulates the compiler to emit errors like
these (only a lot more of them). Changing the
contained type to const testStruct& changes
nothing, but of course I can create and use a
vector of pointer.
Is this my stupidity, and/or is it fodder
for a future Item?
/usr/include/c++/3.2.3/bits/stl_vector.h: In instantiation of
`std::_Vector_alloc_base<testStruct&, std::allocator<testStruct&, true':
test.C:33: instantiated from `std::_Vector_base<testStruct&,
std::allocator<testStruct& '
test.C:33: instantiated from `std::vector<testStruct&,
std::allocator<testStruct& '
test.C:33: instantiated from here
/usr/include/c++/3.2.3/bits/stl_vector.h:115: forming pointer to reference type
`testStruct&'
/usr/include/c++/3.2.3/bits/stl_vector.h:116: forming pointer to reference type
`testStruct&'
/usr/include/c++/3.2.3/bits/stl_vector.h:117: forming pointer to reference type
`testStruct&'
/usr/include/c++/3.2.3/bits/stl_vector.h:121: forming pointer to reference type
`testStruct&'
/usr/include/c++/3.2.3/bits/stl_vector.h:123: forming pointer to reference type
`testStruct&'
/usr/include/c++/3.2.3/bits/stl_vector.h: In instantiation of
`std::vector<testStruct&, std::allocator<testStruct& ':
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]