0

我正在尝试使用 boost 库来标记我的字符串,因为 boost 具有强大的字符串操作算法而不是 STL,但比 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) 这对我来说没有意义!!

请帮忙!

4

1 回答 1

0

RTTI 可能在 Project Options -> C++ Compiler -> C++ Compilation 部分中关闭。创建新项目时,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
于 2016-05-02T15:09:25.057 回答