次のようなコードを書く必要があります
if ( itr->second == "char" )
{
MemberProperty<Owner,char> *ptr = (MemberProperty<Owner, char> *)GetterSetterItr->second;
pw->writeChar(itr->first.c_str() ,(pOwner->*(ptr->m_Getter))());
} else if ( itr->second == "wchar" ) {
MemberProperty<Owner,wchar_t> *ptr = (MemberProperty<Owner, wchar_t> *)GetterSetterItr->second;
pw->writeWideChar(itr->first.c_str() ,(pOwner->*(ptr->m_Getter))());
}
多くの種類がありますが、これをこの種類のコードの1回の呼び出しに減らすための、C ++のトリック、できればテンプレートのトリックはありますか。