C 模板學習總結(一)

2021-07-30 20:48:41 字數 591 閱讀 7428

最近公司接到乙個平台專案,平台中涉及到c++11和較多模板方面的**,發現同事對c++模板部分的理解幾乎為零,也沒有人了解c++11的語法,所以做了幾次培訓,剛開始在c++11部分的講解尚可,模板部分的培訓效果可以說是一塌糊塗,幾乎沒有人能聽懂我在說什麼,兩次以後參加的人也是寥寥無幾了,事後總結了一下,感覺模板裡面的內容如果沒有基礎想聽懂也是有的難,於是在此記錄下本次培訓涉及到的模板方面的內容,主要包含以下方面的內容

adl查詢(argument dependent lookup)

函式模板的實參演繹(template argument deduction)

sfinae(substitution is not an error),這部分技巧偏多

函式模板的過載(template functions overload),這部分相對比較複雜,涉及到當通過模板引數演繹的方式來呼叫函式的時候如何在過載函式中做選擇的問題

列舉各種案例,其中一部分是來自於cppreference 一部分來自stack overflow的提問和回答,還有一部分是我自己寫的。

先寫這些內容,剩下的以後覺得不足再做補充,看起來是個挺浩大的工程,所以不著急,慢慢來,先開個題,爭取五月份以前可以總結完。

C 極簡總結 模板 一

模板把函式或類要處理的資料型別引數化,表現為引數的多型性。模板也是一種 的重用機制。分為函式模板和類模板 函式模板 函式模板的定義格式如下 template 模板參數列 返回值型別 函式名 參數列 include include using namespace std template t squa...

C 模板總結

1 模板概念 模板是泛型程式設計的基礎。所謂泛型程式設計就是編寫與型別無關的邏輯 是一種復用的方式。模板分為模板函式和模板類。2 typename 與 class template 採用 class 來宣告模板 class template 採用 typename 來宣告模板 class 這兩種一般...

C 模板總結

前提 我們要實現乙個通用的交換函式swap,就是讓它適用於任何乙個型別。比如 int,char,double.但是我們要寫很多交換的函式,對swap函式進行過載。那我們如何解決這個問題?可不可以給編譯器乙個模子,讓編譯器來給我們實現不同型別的轉化?1.概念 函式模板代表了乙個函式家族,在使用時被引數...