Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Intermediate
Oct 18, 1999

How to Instantiate a Template Correctly

The type that a template takes as an argument must have external linkage. This means that you cannot instantiate a template with a locally-declared type:
 
int main()
{
  struct S
  {
      int current_state;
      char description[10];
  } mystruct;

  queue<S> qs;   // 1. compilation error
}
The line numbered 1 causes a compilation error because it attempts to instantiate a template with a locally-declared type, S. S has no linkage, and as such, it cannot serve as a valid template argument. To fix this, you should move the declaration of struct S outside of main():
 
struct S
{
  //
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

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