Здравствуйте, коллеги-программисты на C ++.
У меня есть, как я надеюсь, быстрый вопрос о контейнерах STL:
std::list<std::string> l;
Этот оператор прекрасно компилируется, когда используется в некотором исходном файле C ++ (с соответствующими включениями). Но
std::list<const std::string> m;
или
std::list<std::string * const> n;
не скомпилируется при использовании gcc (gcc версии 4.0.1 (Apple Inc., сборка 5484)).
Однако при использовании компилятора Visual Studio 2008 C ++ претензий не возникает.
Небольшое исследование обнаруживает, что элементы в контейнерах STL должны быть Assignable
. Есть ли ошибка в STL в реализации VC (я бы сказал: «маловероятно») или они используют другую концепцию Assignable
?