私は次のコードを持っています:
wxString getColorName(const wxColour& color)
{
typedef ColorComboBox::ColorMap::right_const_iterator ConstColorIterator;
ColorComboBox::ColorMap colorMap = ColorComboBox::getDefaultChoices();
ConstColorIterator it = colorMap.right.find(color);
return it != colorMap.right.end() ? it->second :
ColorComboBox::CUSTOM_COLOR;
}
ColorMapが定義されている場所
typedef boost::bimaps::bimap \
<wxString, boost::bimaps::vector_of<wxColour> > \
ColorMap;
そして、基本的に検索関数が存在しないという長いテンプレートエラーが発生し続けます。でも
ColorMap::left_const_iterator it = choices_.left.find(GetValue());
正常にコンパイルされます。
検索関数は、特定のコレクションタイプのbimapでのみ定義されているという予感があります。wxColourは比較できないため、set_ofwxColoursを使用できません。(それはどういう意味ですか?)コレクションタイプをlist_ofに変更しようとしましたが、それも機能しませんでした。bimapを使用する上での私の全体的なポイントは、どちらの方向にも進む値を見つけることができるようにすることでした。間違ったコンテナを使用していますか?検索関数を使用できるようにするwxColourに使用できる別のコレクションタイプはありますか?
編集: 私は自分のコンテナクラスを作成することになりました。