devxlogo

How to Instantiate a Template Correctly

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 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{  //

See also  Essential Measures for Safeguarding Your Digital Data
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist