我想知道什么是更好的使用我的情况,为什么。首先我听说使用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种方法或只是这种类型检查。