I'm reading Bjarne Stroustrup's book on C++ and he uses things like vector<int>
or complex<double>
. What does it mean when a data type like int
is between a <
and >
sign?
Asked
Active
Viewed 315 times
-14

cchoe1
- 325
- 2
- 15
-
Google --- > C++ Templates – sgarizvi May 12 '18 at 21:46
-
Try the book list from the C++ FAQ: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list/388282#388282 – Richard Critten May 12 '18 at 21:47
-
17Or actually read Stroustrup's book with a modicum of attention. – May 12 '18 at 21:47
-
Templates are only mentioned in the ToC and then they're actually covered in 3.4. He uses templates in examples in Chapter 2. I was trying to actually understand what was happening in each example as I go yet he doesn't cover templates until Chapter 3. – cchoe1 May 12 '18 at 21:49
-
1What do you expect us to say that the book you posted did not say? – Galik May 12 '18 at 22:28
1 Answers
4
They're templates.
Function templates are special functions that can operate with generic types. This allows us to create a function template whose functionality can be adapted to more than one type or class without repeating the entire code for each type.
for example:
template <class C>
C add (C a, C b) {
C result = a + b;
return (result);
}
int a = 1;
int b = 2;
add<int>(a, b); //returns 3
float c = 1.5
float d = 0.5
add<float>(c, d) // returns 2.0

Invariance
- 1,027
- 1
- 7
- 15
-
2Thanks for actually answering my question. I guess I should have read through the entire book before asking a single question – cchoe1 May 12 '18 at 21:55