stackoverflow のほとんどの人は、C++ でマクロを使用するのは恐ろしいことだと言っています。この背後にあるアイデアがわかりません。C++ に代替手段があることは知っていますが、なぜ「間違っている」のでしょうか?
1 に答える
2
Stroustrup の言うことを見てみましょう:
では、マクロを使用することの何が問題なのですか?
マクロは、C++ のスコープと型の規則に従いません。多くの場合、これは微妙な問題とそうではない問題の原因となります。したがって、C++ は、インライン関数、テンプレート、名前空間など、C++ の残りの部分により適した代替手段を提供します。
...
はい、C/C++ プリプロセッサ マクロの問題を被らないマクロとして知られているものがあることは知っています。ただし、C++ マクロを改善するという野心はありません。代わりに、インライン関数、テンプレート、コンストラクタ (初期化用)、デストラクタ (クリーンアップ用)、例外 (コンテキストの終了用) など、C++ 言語固有の機能を使用することをお勧めします。
于 2013-09-02T08:41:03.503 に答える