我正在尝试使用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)
对我来说没有任何意义!!
请帮帮我!
发布于 2016-05-02 23:09:25
在项目选项-> C++编译器-> C++编译部分中可能关闭了RTTI。创建新项目时,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
https://stackoverflow.com/questions/8585239
复制相似问题