C++相談室 part125 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0408デフォルトの名無しさん (ワッチョイ 478b-3Gy/)
2016/07/09(土) 22:01:28.16ID:PBlPBx/A0それはそうとして、配列またはstd::vector<T>の配列様アクセスの添え字が常にsize_tで無ければならない
という主張のは個人的には理想化のしすぎでもあって弊害が大きいと認識する
理由の代表的なもの:
1. size_tは「長さ」を表すという意味をもつ特定用途の型であり、int型より汎用性が高いということはありえない
(つまりプログラム中の整数を全部size_tにするというのは本末転倒で、どっかにsize_tとそれ以外の整数型を使い分ける境界が必ず生じる
2. 符号なし型と符号有り型の混在は比較時等にバグの元になるからプログラム内に散らばるのは良くないから、
それらの境界は管理されねばならない
3. 要素数がINT_MAX以上の配列の実行時の必要性とかはメジャーな要求ではありえない
(2 GBもの配列が千も2千も同時に使用されたら今日日の普通のアーキテクチャではメモリが足りなくなるところだが、現実はそんな問題は生じていない
つまりたいていの配列の添え字はintで事足りる
4. ビヨーン・ストラストロウップのプログラミング言語C++にstd::vector<T>の配列アクセスをintでやる例が複数出てくる
(巻の後の方では確かにsize_tを使い始めるが、intの使用も教祖様は禁じておられぬ
どんな使い方をされるかわからない汎用ライブラリはメモリオブジェクトの長さをsize_tとする必要があるかもしれんが
それらを使う立場であるビジネスロジック側まで巻き着込まれるべきとする根拠は無い希ガス、
■ このスレッドは過去ログ倉庫に格納されています