模板代碼重用
2023-01-12 23:15 作者:sxlxcsxlxc | 我要投稿
effective c++ 44 Factor parameter-independent code out of template
書里給了一個(gè)例子
是一個(gè)元素類型為T的方陣,有一個(gè)求逆的函數(shù)。這個(gè)類把方陣的大小也作為模板參數(shù)。
為什么要這樣?雖然eigen也是這么寫的https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html
https://stackoverflow.com/questions/7395700/reason-for-using-non-type-template-parameter-instead-of-regular-parameter
這個(gè)方陣的問題在于,不同大小的方陣求逆的方法是一樣的,然而現(xiàn)在我們對不同大小的方陣都生成了一份對應(yīng)的invert函數(shù)的代碼。
解決方法是把invert函數(shù)寫在一個(gè)只和T有關(guān)的base class里面,然后讓squareMatrix繼承它
標(biāo)簽: