天天看點

模闆參數預設值

    上次我們講了模闆參數自動推導,模闆參數自動推導可以讓我們調用模闆函數和調用普通函數一樣友善,但是,如果模闆參數清單中存在不能進行自動推導的參數,那麼,當我們調用這個模闆函數的時候,還需要為它們指定實際的模闆參數;那麼是否有一種方法,可以幫助我們徹底實作調用模闆函數和調用普通函數一樣簡單呢?答案是有的,那就是:模闆參數自動推導+模闆參數預設值。今天我們就來看一下什麼是模闆參數預設值。

    模闆參數預設值的主要目的就是為那些不能進行自動推導的模闆參數賦予一個預設值,使用方法就是直接在模闆參數後邊通過等号為其指派;這樣,我們調用這個模闆函數就可以不用再為任何模闆參數指派。下面,我們看一個例子,這個例子示範了使用模闆預設值的好處。需要注意的是,模闆參數預設值需要c++11的支援,我的機器使用的是vc2013和gcc 4.81,這兩個版本的編譯器都支援c++11的特性。在gcc 4.81的編譯器中,編譯指令如下:

    g++ -o 檔案名 源檔案名清單 -std=c++11

例1 使用模闆參數預設值的好處

運作效果如圖1:

圖1 使用模闆參數預設值的好處

    在例1中,由于模闆參數t0和t2不能自動推導,是以,在調用這個模闆函數的時候,一定要指定,又因為t1和t3被t2分隔,是以導緻t1也要被指定實際的模闆參數,是以如果不使用模闆參數預設值的機制,調用這個模闆函數的方法如下:

    是以,通過對比兩種模闆函數的調用方式,我們會發現使用模闆參數預設值的友善。

    今天,我們主要講了什麼是模闆參數預設值以及它的好處。希望大家多多練習,在實踐中體悟它的用法和友善。

繼續閱讀