2011-12-21 22 views
0

私はブーストライブラリを使用して文字列をトークン化しようとしています '原因boostにはSTLよりも強力な文字列操作アルゴリズムがありますが、私は、一度に1行ずつトークン化する必要があります - それは私の必要性に合っています。E2367を修正する方法RTTIクラスを非RTTIベースの '例外'から継承できない

したがって、#include <boost/algorithm/string.hpp>ファイルを追加するといくつかのエラーが発生します。

どのようにエラー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

を投稿することができます使用しているコードがエラーを生成します。 – mark

+0

ブーストがSTLよりも遅いと思うものは何ですか? – mark

+0

マーク!私はTIndy、devx、mydacコンポーネントを使用しています! '#include 'で空のコンソールプロジェクトがうまく動作します。 –

答えて

0

プロジェクトオプション - > C++コンパイラ - > C++コンパイルセクションでRTTIがオフになっている可能性があります。新しいプロジェクトが作成されると、デフォルトでRTTIが有効になっている可能性があります。

詳細はthis Embarcadero QualityCentral ticketを参照してください。ここでエンバカデロネバーランドに離れてしてやられます場合は抜粋のカップルされています再現

ステップ:

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 
関連する問題