我想知道什麼是更好的使用我的情況,爲什麼。首先我聽說使用RTTI(typeid)是不好的。任何人都能解釋爲什麼如果我確切知道類型在運行時比較它們有什麼問題?此外有什麼例子如何使用boost :: type_of?我發現沒有搜索強大的谷歌:)其他解決方案對我來說是專業化的,但我會neet專注於至少9種新方法。這裏有一個例子我所需要的:C++專業化,type_of或只是typeid
我有這個類
template<typename A, typename B, typename C>
class CFoo
{
void foo()
{
// Some chunk of code depends on old A type
}
}
所以我需要在typeid的,而檢查(什麼是我聽到的是壞的),並讓這些3變現例子,如:
void foo()
{
if (typeid(A) == typeid(CSomeClass)
// Do this chunk of code related to A type
else
if (typeid(B) == typeid(CSomeClass)
// Do this chunk of code related to B type
else
if (typeid(C) == typeid(CSomeClass)
// Do this chunk of code related to C type
}
那麼最好的解決方案是什麼?我不想專門針對所有A,B,C,因爲每種類型都有3種專業化,所以我會得到9種方法或只是這種類型檢查。