MFC CArray sınıf (MSDN itibaren) iki şablon parametresi vardır:MFC CArray'de, farklı varsayılan şablon türlerini kullanmanın nedenleri nelerdir?
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray
...
ARG_TYPE
için varsayılan parametre const TYPE&
ve SO üzerinde bazı sorular (varsayılan örn Should the ARG_TYPE for a CArray be const & or not farklı bir türü kullanmak ne zaman sormak veya What's the difference between CArray and CArray ?).
Sorularım şimdi: ARG_TYPE'nin TYPE
veya const TYPE&
olmadığı makul kullanım durumları var mı? başka sınıf? Bu kullanımların nedenleri nelerdir?
Değil sorunuzun cevabı ...
CArray <CString, CString&>
çok iyi çalışmadı hatırlama, ama ** ** 'CArray' KULLANMAYIN. Öğelerini, kopya yapımı yerine 'memcpy' kullanarak kopyalayacak korkunç bir sınıftır. Dolayısıyla, işaretçi içeren bir nesne dizisini tutmak için kullanırsanız, uygulamanız çökecektir. Bunun yerine 'std :: vector' kullanın. – PraetorianCArray'ı kullanmama ve meslektaşları std :: vektörünü kullanmaya ikna etmeme argümanları arıyorum ve bu garipliği merak ettim. CMap, 4 şablon parametresiyle daha da korkunç ve haritadaki sıralama düzenini belirlemek için karmaşık bir yol ... – vividos