Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
Jul 30, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

A Reference to a Reference is Illegal

What is wrong with this code snippet?

#include <string>
#include <list>
using std::string;
using std::list;

class Node {/*..*/};

int main()
  list <node&> ln; //error

If you try to compile this example, your compiler will issue numerous compilation errors. The problem is that list<T> has member functions that take or return T&. In other words, the compiler transforms <node&> to <node&&>. Because a reference to a reference is illegal in C++, the program is ill-formed. As a rule, you should instantiate templates in the form of list<node> and never as list <node&>.

Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date