局部和匿名类型作模板实参
生活随笔
收集整理的這篇文章主要介紹了
局部和匿名类型作模板实参
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在C++98中,模板的實參類型有限制,即局部類型和匿名類型不能作為模板實參。
1 template <typename T> class X{}; 2 template <typename T> void TempFun(T t){} 3 struct A{} a; 4 struct {int i;} b; // b是匿名類型變量 5 typedef struct {int i;} B; // B是匿名類型 6 7 void fun() { 8 struct C{} c; // C是局部類型 9 X<A> x1; 10 X<B> x2; 11 X<C> x3; 12 TempFun(a); 13 TempFun(b); 14 TempFun(c); 15 }編譯結果如下:
可以看到,使用c++98編譯時,局部類型,匿名類型都無法作為模板實參,這些限制都是沒有任何意義的,所以c++11作了改進,以上代碼在c++11中編譯是OK 的。
轉載于:https://www.cnblogs.com/lniwn/p/3404520.html
總結
以上是生活随笔為你收集整理的局部和匿名类型作模板实参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2008中自定义C++工程模板与修改
- 下一篇: 遇到问题描述:Android Ple