最近、クラスがどのようにタイプに対して独自のローカル名を定義することが許されているかを読んでいます。有名な例の1つはsize_type
であり、ほぼすべてのSTLコンテナによって提供されています。そうすることで、クラスのユーザーから実装の詳細を隠すのに役立つとも言われました。これがどのように起こっているか私はあまりよく分かりません。C++ - タイプのローカル名の意義
タイプのローカル名を定義すると便利な場合があり、そうすることで実装の詳細が隠蔽される例は何ですか?
最近、クラスがどのようにタイプに対して独自のローカル名を定義することが許されているかを読んでいます。有名な例の1つはsize_type
であり、ほぼすべてのSTLコンテナによって提供されています。そうすることで、クラスのユーザーから実装の詳細を隠すのに役立つとも言われました。これがどのように起こっているか私はあまりよく分かりません。C++ - タイプのローカル名の意義
タイプのローカル名を定義すると便利な場合があり、そうすることで実装の詳細が隠蔽される例は何ですか?
タイプのローカル名を定義すると便利であり、実装の詳細がどのように隠れるかをいくつかの例で示してください。
テンプレートアルゴリズムやコンテナを使用すると、そのタイプにそのようなエイリアスがあると思われる場合に、より便利です。したがって、タイプをsize_typeに変更した場合でも、何らかの理由でsize_t
からint
に変更しても、そのアルゴリズム/コンテナは引き続き使用できます。
それ以外の場合は、例えば、独自のアロケータを実装する場合には、標準ではの存在が必要です。
タイプsize_type
の変数をいくつか定義し、どこかにint
として定義されているプログラムがあるとします。
次に、分析と反映の後で、変数が値が1万を超えるとは決して想像しません。したがって、これらの変数のそれぞれを割り当てるために使用される32ビットは、幾分過度のものです。この場合、size_type
をshort
タイプとして再定義することができます(int
ではなく)。したがって、いくつかのメモリを節約することになります。
例に関しては、clock_t
,char16_t
, char32_t
, wchar_t
,true_type
およびfalse_type
をチェックすることができます。
「size_type」という名前でどのような実装の詳細が公開されていますか? – molbdnilo
@molbdniloとは何が隠されていますか? – juanchopanza