• Advertisement

Archived

This topic is now archived and is closed to further replies.

c++, what are templates?????

This topic is 5070 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I hear alot of people praising templates, and not being to program without them etc. My question is what on earth are they?

Share this post


Link to post
Share on other sites
Advertisement
Templates are C++'s method to parameterized code at compile time, generally through the use of type parameters. The basic gist is I can define a class or function that I might want to use with different types and only want to write once. In that case I can template that code based on that type. For example, the swap function for integers looks like:

void swap(int & x, int & y) {
int temp = x;
x = y;
y = temp;
}

If I want to use swap with any type, I can do:

template <typename T>
void swap(T & x, T & y) {
T temp = x;
x = y;
y = temp;
}

Then I can use it like:

swap<int>(int_x, int_y);
swap<float>(float_x, float_y);

You might want to consult this section in the C++ FAQ lite or a good recent C++ reference book.

edit: spelling

[edited by - SiCrane on April 6, 2004 7:04:30 AM]

Share this post


Link to post
Share on other sites
Yes, std::vector is a template, as are other std containers, such as map and list.

Share this post


Link to post
Share on other sites

  • Advertisement