標籤:signed typename pen sys 必須 auto str log lin
練習16.17
原則上並沒有什麼特別的差別,只是在我們希望通知編譯器一個名字表示類型時,必須使用關鍵字typename,而不能使用class。
練習16.18
a)template <typename T, typename U, typename V> void f1(T, U, V);
b)template <typename T> T f2(T&);
c)template <typename T> inline T foo(T, unsigned int *);
d)template <typename T> T f4(T, T);
e)合法
練習16.19
1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 #include <list> 7 8 using namespace std; 9 10 template <typename T>void print(const T& t);11 12 int main()13 {14 vector<string> v1{ "ad", "ad" };15 print(v1);16 system("pause");17 return 0;18 }19 20 template<typename T>21 void print(const T & t)22 {23 for (size_t i = 0; i != t.size(); ++i)24 cout << t[i] << endl;25 }
練習19.20
1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 #include <list> 7 8 using namespace std; 9 10 template <typename T>void print(const T& t);11 12 int main()13 {14 vector<string> v1{ "ad", "ad" };15 print(v1);16 system("pause");17 return 0;18 }19 20 template<typename T>21 void print(const T & t)22 {23 for (auto p = t.begin(); p != t.end(); ++p)24 cout << *p << endl;25 }
C++primer 16.1.3節練習