我正在尝试使用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)
这对我没有意义!!
请帮忙!
答案 0 :(得分:0)
可能在项目选项中关闭了RTTI - &gt; C ++编译器 - &gt; C ++编译部分。创建新项目时,默认情况下可以打开RTTI。
有关详细信息,请参阅this Embarcadero QualityCentral ticket。以下是一些摘录,如果它们被摧毁到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