Привет, коллеги программистов на С ++. у меня есть, что я надеюсь быть, быстрый вопрос о STL контейнерах:указатели константы в контейнерах STL
std::list<std::string> l;
Это утверждение отлично компилируется при использовании в некоторых C++ SourceFile (с соответствующим включает в себя). Но
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
?
Я предполагаю, что он окупится, чтобы использовать несколько компиляторов, обучая кривой. Тем не менее, я бы предпочел, чтобы инструмент статического анализа указывал на такие скользкие назначения. – msi
Возможно, вы захотите проверить [STLport] [http://www.stlport.org/]. Мне придется снова установить его и посмотреть, поймает ли он это. –