[解決済み] RTTIを使用せずにc++をコンパイルすると、どのような問題が発生しますか?
質問
gccの
-fno-rtti
フラグを使用して、ランタイム型情報なしで C++ をコンパイルしています。
を使わないと仮定すると
dynamic_cast<>
または
typeid()
とか、後の問題につながるようなことはないのでしょうか?
解決方法は?
あなたの質問はGCCに特有のものなので、あなたが使っているバージョンのドキュメントを注意深く参照する必要があります。GCC 4.5.2のドキュメントには次のように書かれています。わたしの読みでは、dynamic_castとtypeidを避ければ、大丈夫であることを示しています。とはいえ、わたしは個人的に-fn-rttiを使った経験がありません。おそらく、あなたはなぜ-fn-rttiを使用しているのかについて詳しく説明したいと思うかもしれません。
<ブロッククオート
-fno-rtti
を持つすべてのクラスに関する情報を生成しないようにします。
仮想関数で使用されるC++の
ランタイム型識別機能
(
dynamic_cast
と
typeid
). もし、あなたが
そのような部分を使用しない言語です。
を使用すると、スペースを節約することができます。
フラグを使用します。例外処理
は同じ情報を使用しますが
は必要に応じて生成されます。そのため
dynamic_cast
演算子を使用することができます。
を必要としないキャストに使用されます。
実行時の型情報、すなわち
から
void *
または曖昧でないベース
クラスがあります。
仮想関数とRTTIの関係については、以下のページで解説しています。 RTTIが無くても仮想メソッド . 簡単に言うと、仮想関数はRTTIがなくても問題ないはずです。
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】C++アプリケーションにリフレクションを追加するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された