STL 実装がなぜこんなに読みにくいのか? C++ ではこの点をどのように改善できたのか? 質問する

STL 実装がなぜこんなに読みにくいのか? C++ ではこの点をどのように改善できたのか? 質問する

たとえば、なぜ STL 実装のほとんどのメンバーに_M_または_または__プレフィックスが付いているのでしょうか? なぜ定型コードがこんなに多いのでしょうか?

C++ には、ベクトル (たとえば) の実装をより明確かつ簡潔にするために欠けている機能は何ですか?

ベストアンサー1

実装では、ユーザー定義のマクロとの競合を避けるために、アンダースコアで始まり、大文字または 2 つのアンダースコアが続く名前を使用します。このような名前は C++ で予約されています。たとえば、 というマクロを定義してTypeから とすることができます。実装が をテンプレート パラメータ名として使用する#include <vector>と、問題が発生します。ただし、 というマクロ(またはなど) を定義することはできません。したがって、このような名前は安全に使用できます。vectorType_Type__typetype__vector

おすすめ記事