0

boost::any オブジェクトの typevalue を取得して any_cast に使用する方法はありますか?

    POSITION dictPos = CurrentSubMap->GetStartPosition();
    while(dictPos)
    {

        boost::any a = CurrentSubMap->GetValueAt(dictPos);
        if(a.type() == typeid(long))
            dictToAppend[CurrentSubMap->GetNextKey(dictPos)] = boost::any_cast<long>(a); 
        else
            dictToAppend[CurrentSubMap->GetNextKey(dictPos)] = boost::any_cast<CAtlString>(a);


    }

それは機能しますが、次のような動的なソリューションが必要です:

dictToAppend[CurrentSubMap->GetNextKey(dictPos)] = boost::any_cast<HERE_THE_TYPE_OF_a>(a);

「a.type()」で試してみましたが、うまくいきません。

「'ValueType' のテンプレート引数が無効です。型が必要です」

4

0 に答える 0