У меня есть следующий код:
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.Я не могу использовать set_of wxColours, потому что wxColour не сопоставим.(Что бы это даже значило?) Я также попытался изменить тип коллекции на list_of, но это тоже не сработало.Весь смысл в использовании bimap заключался в том, чтобы я мог найти значения, идущие в любом направлении.Я использую не тот контейнер?Есть ли другой тип коллекции, который я могу использовать для wxColour, который позволит мне использовать функцию поиска?
РЕДАКТИРОВАТЬ: В итоге я создал свой собственный контейнерный класс.