Пожалуйста, объясните, почему следующий код не компилируется с помощью clang 3.5.
Сообщается об ошибке: "Невозможно перегрузить" = "в алгоритме".
std::vector<const std::string> m_messages;
std::vector<const std::string>::iterator iter;
...
if (iter != m_messages.end())
{
m_messages.erase(iter); // compilation error
}
Если я объявляю m_messages
как: std::vector<std::string> m_messages;
, тогда он компилируется ОК.
Кроме того, в чем разница между:
std::vector<const std::string> m_messages;
и
std::vector<std::string> m_messages;
ТИА.