как исправить E2367 Невозможно унаследовать класс RTTI от не-RTTI базового «исключения» - PullRequest
0 голосов
/ 21 декабря 2011

Я пытаюсь использовать библиотеки boost для токенизации моей строки, потому что boost имеет мощные алгоритмы манипуляции со строками, а не STL, но немного медленнее, но, поскольку мне нужно только токенизировать строку за раз - это соответствует моим потребностям.

Итак, при добавлении #include <boost/algorithm/string.hpp> inc файла выдается несколько ошибок!

Так как исправить ошибку E2367 (RTTI) ??? как здесь объясняет официальный сайт Emb http://docwiki.embarcadero.com/RADStudio/en/E2366_Can't_inherit_non-RTTI_class_from_RTTI_base_OR_E2367_Can't_inherit_RTTI_class_from_non-RTTI_base_(C%2B%2B) это не имеет смысла для меня !!

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 02 мая 2016

Возможно, что RTTI был отключен в разделе Параметры проекта -> Компилятор C ++ -> Компиляция C ++.Когда новый проект был создан, RTTI мог быть включен по умолчанию.

См. этот билет Embarcadero QualityCentral для получения дополнительной информации.Вот несколько отрывков на случай, если их забросить в Embarcadero Neverland:

Шаги для воспроизведения:

bcc32 -c -RT- 238409.cpp

//exp : clean compile 
//res : 
Error E2367 D:\borland\dexter\Include\typeinfo.h 114: Can't inherit RTTI class from non-RTTI base 'exception'
Error E2367 D:\borland\dexter\Include\typeinfo.h 115: Can't inherit RTTI class from non-RTTI base 'exception'
Error E2238 D:\borland\dexter\Include\dinkumware\xlocale 649: Multiple declaration for 'codecvt<wchar_t,char,int>::in(int &,const char *,const char *,const char * &,wchar_t *,wchar_t *,wchar_t * &) const'
Error E2344 D:\borland\dexter\Include\dinkumware\xlocale 538: Earlier declaration of 'codecvt<wchar_t,char,int>::in(int&,const char *,const char *,const char * &,wchar_t *,wchar_t *,wchar_t * &) const'
Error E2238 D:\borland\dexter\Include\dinkumware\xlocale 657: Multiple declaration for 'codecvt<wchar_t,char,int>::out(int &,const wchar_t *,const wchar_t *,const wchar_t * &,char *,char *,char * &) const'

Обходные пути:

enable rtti
...