的MFC CARRAY類有兩個模板參數(從MSDN):在MFC CArray中,使用不同默認模板類型的原因是什麼?
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray
...
爲ARG_TYPE
的默認參數是const TYPE&
,並因此一些問題,問什麼時候使用不同類型的默認值(例如Should the ARG_TYPE for a CArray be const & or not,或What's the difference between CArray and CArray ?)。
我現在的問題是:是否存在ARR_TYPE不是TYPE
或const TYPE&
的合理CArray用例,例如,另一班?這些用法的原因是什麼?
不是你的問題的答案,但**不要**使用'CArray'。這是一個可怕的類,它將使用memcpy而不是複製構造來複制它的元素。所以如果你用它來保存一個包含指針的對象數組,你的應用程序就會崩潰。改用'std :: vector'。 – Praetorian
我正在尋找不使用CArray的參數,並且說服同事使用std :: vector,並且我懷疑這種怪異。使用4個模板參數和一個確定地圖中排序順序的複雜方法,CMap更加可怕... – vividos