次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part137
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 12c3-4saf)
2018/08/27(月) 16:02:00.94ID:vY3QDx2y0887デフォルトの名無しさん (ワッチョイ f7c3-2BxS)
2018/10/01(月) 19:14:47.64ID:Gge6W+rt0888デフォルトの名無しさん (ワッチョイ 9f02-aemA)
2018/10/01(月) 19:19:47.07ID:qsdLJDx40 >>881
別に?
int *j;
j = &10;
int i = *j;
てだけじゃん
10が左辺値だったらって話ね
char *j;
j = "\n";
int i = *j;
て話と何か違うの?
別に?
int *j;
j = &10;
int i = *j;
てだけじゃん
10が左辺値だったらって話ね
char *j;
j = "\n";
int i = *j;
て話と何か違うの?
889デフォルトの名無しさん (ワッチョイ f7c3-2BxS)
2018/10/01(月) 19:23:45.27ID:Gge6W+rt0 10が左辺値ならこれ認めるの?
10 = 42;
10 = 42;
890デフォルトの名無しさん (ワッチョイ 574e-2bq/)
2018/10/01(月) 21:57:05.81ID:92NEoPQV0 お前らがC++で作ったことあるものリスト化して
891デフォルトの名無しさん (ワッチョイ 9f02-aemA)
2018/10/01(月) 22:37:33.40ID:qsdLJDx40892デフォルトの名無しさん (ワッチョイ 9f02-aemA)
2018/10/01(月) 22:42:30.92ID:qsdLJDx40893デフォルトの名無しさん (ワッチョイ 9fbd-G9Ql)
2018/10/01(月) 23:15:35.29ID:2m3Ms8fl0 >>874
ていうか所有権などという中途半端な概念にオブジェクトの解放を担わせるのは危険か無意味かのどっちかにしかならない
最後までオブジェクトを使いたい人と、そのオブジェクトを所有する人を
コードに所有権を明示するスタイルで一致させられるケースは少ない
希ガス
ていうか所有権などという中途半端な概念にオブジェクトの解放を担わせるのは危険か無意味かのどっちかにしかならない
最後までオブジェクトを使いたい人と、そのオブジェクトを所有する人を
コードに所有権を明示するスタイルで一致させられるケースは少ない
希ガス
894デフォルトの名無しさん (ワッチョイ 9fbd-G9Ql)
2018/10/01(月) 23:21:45.86ID:2m3Ms8fl0 しかしながら右辺値参照を使うとコードを書く人がオブジェクトの所有権を意識せざるを得ない
これを抽象化といわれるとかなり違和感
※ 個人の感想です
これを抽象化といわれるとかなり違和感
※ 個人の感想です
895デフォルトの名無しさん (ワッチョイ bf9f-e6iu)
2018/10/01(月) 23:31:19.12ID:rJND5eoS0 結局ネストしたオブジェクトってのはどう扱おうと楽な扱いなんてできんってことなんだわ。
同期と効率と安全性を全て容易にするってのは不可能なんじゃないかね。
同期と効率と安全性を全て容易にするってのは不可能なんじゃないかね。
896デフォルトの名無しさん (ワッチョイ 9fbd-G9Ql)
2018/10/01(月) 23:41:31.83ID:2m3Ms8fl0 >>895
>結局ネストしたオブジェクトってのはどう扱おうと楽な扱いなんてできんってことなんだわ。
いや?
オブジェクトの所有権は最初のcallerががっちり掴んでオブジェクトを使うcallee以下は生ポでおk
全てが調和する
>結局ネストしたオブジェクトってのはどう扱おうと楽な扱いなんてできんってことなんだわ。
いや?
オブジェクトの所有権は最初のcallerががっちり掴んでオブジェクトを使うcallee以下は生ポでおk
全てが調和する
897デフォルトの名無しさん (ワッチョイ 5780-q1nr)
2018/10/01(月) 23:46:11.02ID:zfKNS/F/0 アホどもはやっと気付いたか。。。
コタエ:最初から普通にポインタで書きなさい
unique_ptr、shared_ptr、weak_ptrなんか使ってるヤツラは
クルクルパーしかいない
コタエ:最初から普通にポインタで書きなさい
unique_ptr、shared_ptr、weak_ptrなんか使ってるヤツラは
クルクルパーしかいない
898デフォルトの名無しさん (ワッチョイ 17b3-kFNE)
2018/10/01(月) 23:49:34.85ID:aHxMqUX30 >>894
右辺値参照周りを抽象化とか言ってるアホははちみつだけだろ
右辺値参照周りを抽象化とか言ってるアホははちみつだけだろ
899デフォルトの名無しさん (アウアウウー Sadb-mlbx)
2018/10/02(火) 00:39:52.22ID:YrRJAaFSa https://ideone.com/BBhHn8
上のコードで教えて欲しい。
templateでデフォルト引数で関数を指定する場合、わざわざテンプレートパラメーターFuncにdecltype(...)しなきゃいけないのは何故?
上のコードで教えて欲しい。
templateでデフォルト引数で関数を指定する場合、わざわざテンプレートパラメーターFuncにdecltype(...)しなきゃいけないのは何故?
900デフォルトの名無しさん (ワッチョイ 17b3-aemA)
2018/10/02(火) 01:21:04.00ID:HQVsIoxF0901はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/02(火) 02:10:18.78ID:wuORmtyC0 >>894
ムーブだのなんだの言ってても、
C++ の言語機能として直接的に有るのは rvalue 参照を区別して受け取れるってだけで、
所有権の管理をキッチリやってくれるわけではない C++ の限界なんだよね。
だけど、なるべくクラス・関数の実装の中に区別を押し込めて隠す道具のひとつにはなるって話。
でも、中途半端にやるなら隠さないで見せた方がマシという論はわかる。
ムーブだのなんだの言ってても、
C++ の言語機能として直接的に有るのは rvalue 参照を区別して受け取れるってだけで、
所有権の管理をキッチリやってくれるわけではない C++ の限界なんだよね。
だけど、なるべくクラス・関数の実装の中に区別を押し込めて隠す道具のひとつにはなるって話。
でも、中途半端にやるなら隠さないで見せた方がマシという論はわかる。
902はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/02(火) 05:46:40.59ID:wuORmtyC0 受取る関数の側を上手く作っておけば
それを使う側では所有権の移動とかそんなに気にしなくない?
rvalue だったら勝手にちょっと効率的になる (こともある) ねってだけで。
使うときに気にしなくて良いように押し込められるならやっぱり抽象化の道具って言えると思うよ。
それを使う側では所有権の移動とかそんなに気にしなくない?
rvalue だったら勝手にちょっと効率的になる (こともある) ねってだけで。
使うときに気にしなくて良いように押し込められるならやっぱり抽象化の道具って言えると思うよ。
903デフォルトの名無しさん (アウアウウー Sadb-mlbx)
2018/10/02(火) 06:04:33.19ID:YrRJAaFSa904はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/02(火) 06:50:19.11ID:wuORmtyC0 >>903
デフォルト引数からはテンプレート引数を推定できない制限がある。
デフォルト引数からはテンプレート引数を推定できない制限がある。
905デフォルトの名無しさん (アウアウウー Sadb-mlbx)
2018/10/02(火) 07:00:39.49ID:YrRJAaFSa なるほどです。
906デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 07:46:51.87ID:kk/2dA0Y0 時々、イラつかされる制限だ
907デフォルトの名無しさん (ラクッペ MM0b-2bq/)
2018/10/02(火) 08:15:45.67ID:Tcj3k2lbM >>890
C++が得意なことを教えてください
C++が得意なことを教えてください
908デフォルトの名無しさん (ブーイモ MM7b-uZyL)
2018/10/02(火) 10:26:10.74ID:giBEQZ0BM909デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 10:31:03.15ID:kk/2dA0Y0 冗談は顔だけにしろよ
たとえばstd::threadの右辺値参照なんぞ意識してるか?
たとえばstd::threadの右辺値参照なんぞ意識してるか?
910デフォルトの名無しさん (ワッチョイ 17b3-kFNE)
2018/10/02(火) 13:13:32.45ID:8CvSI5wK0 一行目に何の意味があるのかわからん
911デフォルトの名無しさん (JP 0H4f-ZVm4)
2018/10/02(火) 15:51:55.37ID:Xh7D/bbnH 割と昔からあるプログラムを見てるんですけど一つのメソッド内で
for(int i = 0; ……){……}
for(i = 0;……){……}
って書き方してるのをちらほら見ます
要は宣言してるんだから使い回せるだろみたいな理屈なんでしょうがビルドしようとすると当然未定義だとエラーが出ます
昔のC++だとこれがオッケーだったりしたんでしょうか?
for(int i = 0; ……){……}
for(i = 0;……){……}
って書き方してるのをちらほら見ます
要は宣言してるんだから使い回せるだろみたいな理屈なんでしょうがビルドしようとすると当然未定義だとエラーが出ます
昔のC++だとこれがオッケーだったりしたんでしょうか?
912デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 15:56:06.09ID:kk/2dA0Y0 そうだよ
913デフォルトの名無しさん (ラクッペ MM0b-2bq/)
2018/10/02(火) 16:33:18.83ID:Tcj3k2lbM c++で初心者が作れるものを教えてください
914デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 16:37:39.73ID:kk/2dA0Y0 rogueとか作って見てはどうよ
SetConsoleCursorPositionとGetKeyStateがあれば何とかなるだろ
SetConsoleCursorPositionとGetKeyStateがあれば何とかなるだろ
915はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/02(火) 16:39:28.61ID:wuORmtyC0916デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 17:18:00.03ID:kk/2dA0Y0 今のコンパイラでも当時の仕様に合わせるオプションはある
917デフォルトの名無しさん (ラクッペ MM0b-2bq/)
2018/10/02(火) 18:04:17.03ID:Tcj3k2lbM >>914
ありがとう
ありがとう
918デフォルトの名無しさん (ラクッペ MM0b-2bq/)
2018/10/02(火) 19:05:29.79ID:Tcj3k2lbM C++.でバッチ処理やbashのsedの様な機能はありますか?
919デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/02(火) 19:11:57.50ID:kk/2dA0Y0 システムコマンドを実行したいのならsystem関数
正規表現ならstd::regexクラス
ファイル名に関する様々なことはstd::filesystem::pathクラス
正規表現ならstd::regexクラス
ファイル名に関する様々なことはstd::filesystem::pathクラス
920デフォルトの名無しさん (ワッチョイ 574e-2bq/)
2018/10/02(火) 20:37:48.16ID:YnEH1wx10921デフォルトの名無しさん (オッペケ Sr4b-N9wp)
2018/10/03(水) 01:07:54.12ID:S2BN/gu+r std::array を自作関数の引数に渡したいときって、サイズはハードコードしないとダメなの?
922さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ d7b3-uTcE)
2018/10/03(水) 01:11:26.75ID:gXNqr2Qf0923デフォルトの名無しさん (オッペケ Sr4b-N9wp)
2018/10/03(水) 01:18:33.15ID:S2BN/gu+r924デフォルトの名無しさん (オッペケ Sr4b-N9wp)
2018/10/03(水) 01:18:50.70ID:S2BN/gu+r925デフォルトの名無しさん (ワッチョイ 1708-ClIk)
2018/10/03(水) 03:04:58.67ID:plRFOjxw0926はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/03(水) 05:02:16.81ID:jiQInXAP0 >>925
たぶんそれより更に前の話だったと思う。
「c++ for文 宣言 スコープ」でググったらこういうのとかヒットした。
http://www.ksky.ne.jp/~seahorse/cpp/loopvar.html
D&E でも言及があって、 if 文でのルールと合わせる形で修正したという話が載ってる。
たぶんそれより更に前の話だったと思う。
「c++ for文 宣言 スコープ」でググったらこういうのとかヒットした。
http://www.ksky.ne.jp/~seahorse/cpp/loopvar.html
D&E でも言及があって、 if 文でのルールと合わせる形で修正したという話が載ってる。
927デフォルトの名無しさん (ワッチョイ 373d-0kAr)
2018/10/03(水) 05:31:10.20ID:F+YgKz680928はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/03(水) 05:33:04.20ID:jiQInXAP0 ARM (The Annotated C++ Reference Manual; http://amzn.asia/d/53K2HrA ) を確認してみたら、
「初期設定文が宣言ならば、宣言された変数のスコープは for 文を囲むブロックの終わりまでである」
というような記述がある。 (要するに古い仕様)
このあたりから C++98 になるまでの間に修正したってことなんじゃないかと。
「初期設定文が宣言ならば、宣言された変数のスコープは for 文を囲むブロックの終わりまでである」
というような記述がある。 (要するに古い仕様)
このあたりから C++98 になるまでの間に修正したってことなんじゃないかと。
929デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/03(水) 07:01:52.10ID:IEc6BJqm0930デフォルトの名無しさん (スッップ Sdbf-wTw4)
2018/10/03(水) 11:00:28.82ID:e50Rb7+yd >>925
最初期の処理系、AT&T cfront の頃からの仕様だから 1980年台だと思う
ちなみに有名な Annotated C++ Reference Manual (ARM) は
この cfront のリファレンスマニュアルに注を付けたもの。
Mac II が出た頃の Mac のソフト開発者は Apple の MPW という開発環境の上で
AT&T のリファレンスマニュアル見ながら cfront で開発していた。
最初期の処理系、AT&T cfront の頃からの仕様だから 1980年台だと思う
ちなみに有名な Annotated C++ Reference Manual (ARM) は
この cfront のリファレンスマニュアルに注を付けたもの。
Mac II が出た頃の Mac のソフト開発者は Apple の MPW という開発環境の上で
AT&T のリファレンスマニュアル見ながら cfront で開発していた。
931デフォルトの名無しさん (スッップ Sdbf-wTw4)
2018/10/03(水) 11:03:08.53ID:e50Rb7+yd >>925
>しかし検索しても全然出てこないというかどう検索したら良いものか。
当時まだ処理系と独立して言語仕様を策定/記述したものは存在していなくて、
上記の cfront のリファレンスマニュアルと cfront の実際の動作が c++ の仕様でした。
>しかし検索しても全然出てこないというかどう検索したら良いものか。
当時まだ処理系と独立して言語仕様を策定/記述したものは存在していなくて、
上記の cfront のリファレンスマニュアルと cfront の実際の動作が c++ の仕様でした。
932デフォルトの名無しさん (ワッチョイ 17b3-kFNE)
2018/10/03(水) 12:23:08.82ID:eWsEWXO50933デフォルトの名無しさん (ワッチョイ 9702-aemA)
2018/10/03(水) 13:10:09.63ID:IEc6BJqm0 >>932
俺だったらこう書くぜ
{ for(int i = 0; i < 1; i++) ; }
{ for(int i = 0; i < 1; i++) ; }
前提にしている環境を誤解させかねない変態コードには反対だ
俺だったらこう書くぜ
{ for(int i = 0; i < 1; i++) ; }
{ for(int i = 0; i < 1; i++) ; }
前提にしている環境を誤解させかねない変態コードには反対だ
934デフォルトの名無しさん (ワッチョイ 9f23-wTw4)
2018/10/03(水) 13:21:21.77ID:2zzoZNSm0 ヘタレな俺は c 同様直近のブロックの頭で宣言してました
935はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-aemA)
2018/10/03(水) 17:25:53.30ID:jiQInXAP0 >>934
今では C でもブロックの頭という縛りは無いやで。
今では C でもブロックの頭という縛りは無いやで。
936デフォルトの名無しさん (オッペケ Sr4b-N9wp)
2018/10/03(水) 22:30:16.11ID:T5RLH7Axr std::array ってコンパイル時にサイズが決まっていることを想定して作られてるんだよね?
だったら、「可変長ではないがサイズは実行時に決まる」というメモリが連続な配列がほしいなら生配列を使え、というのが C++ を作った人の気持ちなの?
だったら、「可変長ではないがサイズは実行時に決まる」というメモリが連続な配列がほしいなら生配列を使え、というのが C++ を作った人の気持ちなの?
937デフォルトの名無しさん (アウアウウー Sadb-mlbx)
2018/10/03(水) 23:04:38.92ID:p3pJJViFa それこそvectorじゃないの
938デフォルトの名無しさん (ワッチョイ 1704-ClIk)
2018/10/03(水) 23:19:51.08ID:frDsf1q90 >>936
いや、昔はイニシャライザーリストがなかったので、初期化式が使えるオブジェクトの立ち位置だった。
イニシャライザーリストが入ったのでほぼ産廃。constexprの対応もなく死んでいる。
基本的に配列っぽいものがほしかったらベクター使ってっていう趣旨だったと思う。
いや、昔はイニシャライザーリストがなかったので、初期化式が使えるオブジェクトの立ち位置だった。
イニシャライザーリストが入ったのでほぼ産廃。constexprの対応もなく死んでいる。
基本的に配列っぽいものがほしかったらベクター使ってっていう趣旨だったと思う。
939デフォルトの名無しさん (オッペケ Sr4b-N9wp)
2018/10/03(水) 23:26:50.16ID:T5RLH7Axr940デフォルトの名無しさん (ワッチョイ 1704-ClIk)
2018/10/03(水) 23:29:56.10ID:frDsf1q90941デフォルトの名無しさん (ワッチョイ c48a-Aquf)
2018/10/04(木) 00:07:58.65ID:zm1AtLvQ0 >>939
迷わず使っていいですよ
迷わず使っていいですよ
942デフォルトの名無しさん (ワッチョイ 9bc3-dNAh)
2018/10/04(木) 00:35:06.85ID:b1qTAw9u0 C++11からvectorのメモリ空間は連続でなければならないと規格で決められた
安心していいよ
安心していいよ
943デフォルトの名無しさん (オッペケ Sr10-/FYQ)
2018/10/04(木) 00:40:31.88ID:bav+IDITr >>940-942
ありがとうございます
しかしメモリが連続じゃないといけない外部ライブラリに vector 渡すの結構緊張しますね
少し飛躍するのですが、vector の入れ子は流石に連続とは限りませんよね?
ありがとうございます
しかしメモリが連続じゃないといけない外部ライブラリに vector 渡すの結構緊張しますね
少し飛躍するのですが、vector の入れ子は流石に連続とは限りませんよね?
944デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/04(木) 00:58:43.11ID:s35zoLCpa メモリ連続させたいならvectorの入れ子はよして。
最初arrayで考えてたなら画像とか行列とかそんな感じかな?
最初arrayで考えてたなら画像とか行列とかそんな感じかな?
945デフォルトの名無しさん (スップ Sdc4-+rwh)
2018/10/04(木) 01:32:01.20ID:ezH2Wklod946デフォルトの名無しさん (オッペケ Sr10-/FYQ)
2018/10/04(木) 01:57:52.21ID:CYtCz8O/r >>944
いえ、もともとは生の一次元配列を使ってて、array の方が取り回しが良いのかなと考えただけです
実際は vector が最強ということですね
入れ子云々は本当に気になっただけです
多次元配列は、色々諦めて Boost を使っています
いえ、もともとは生の一次元配列を使ってて、array の方が取り回しが良いのかなと考えただけです
実際は vector が最強ということですね
入れ子云々は本当に気になっただけです
多次元配列は、色々諦めて Boost を使っています
947デフォルトの名無しさん (ワッチョイ de8a-F3g9)
2018/10/04(木) 03:00:41.82ID:SxiNReMs0 変数名とかクラス名にめちゃくちゃ毎回悩む
従業員の名前、社員番号、階級みたいなクラスを作るときのクラス名とかって普段どうしてる?
Employeeだけで良いのだろうか
DataとかInfoとか意味のあるようでないような命名が頭をよぎってしまう
仮に従業員をEmployeeとしたときに会社名と従業員リストのDictionary<string, List<Employee>>の変数名とかどうすりゃええねんってなる
CompanyではないしCompanyDataだとそれっぽいが的確でもなさそうだし...
従業員の名前、社員番号、階級みたいなクラスを作るときのクラス名とかって普段どうしてる?
Employeeだけで良いのだろうか
DataとかInfoとか意味のあるようでないような命名が頭をよぎってしまう
仮に従業員をEmployeeとしたときに会社名と従業員リストのDictionary<string, List<Employee>>の変数名とかどうすりゃええねんってなる
CompanyではないしCompanyDataだとそれっぽいが的確でもなさそうだし...
948デフォルトの名無しさん (スップ Sdc4-+rwh)
2018/10/04(木) 03:38:58.82ID:ezH2Wklod emproyees でいいだろ
for (consy auto& emproyee : emproyees["Microsoft"]) ...
for (consy auto& emproyee : emproyees["Microsoft"]) ...
949デフォルトの名無しさん (スップ Sdc4-+rwh)
2018/10/04(木) 03:39:14.21ID:ezH2Wklod rじゃなくてlか
950さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sd94-hQIv)
2018/10/04(木) 04:00:10.87ID:MLculXgyd MapCompanyNameToEmployees
951はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e66f-vBoO)
2018/10/04(木) 04:12:55.17ID:1wg41Y300 >>939
vector が連続と明記されたのは C++03 だが、
C++ 標準の体制としては仕様の「欠陥」と認められた項目については過去の版にさかのぼって適用されることがあり、
vector が連続であるというのもそのひとつのはず。
つまり、 C++98 を名乗る処理系でも vector は連続であるべきで、実際にほとんどそうなっていると思う。
vector が連続と明記されたのは C++03 だが、
C++ 標準の体制としては仕様の「欠陥」と認められた項目については過去の版にさかのぼって適用されることがあり、
vector が連続であるというのもそのひとつのはず。
つまり、 C++98 を名乗る処理系でも vector は連続であるべきで、実際にほとんどそうなっていると思う。
952デフォルトの名無しさん (ワッチョイ 1e81-toeJ)
2018/10/04(木) 04:54:31.87ID:MQvrn7bB0 >>947
クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1494147712/
クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1494147712/
953デフォルトの名無しさん (ワッチョイ a6b3-XM+q)
2018/10/04(木) 19:12:35.69ID:Ohr0xwue0 >>947
素直に日本語使えばええやんけ。
素直に日本語使えばええやんけ。
954デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 00:43:30.52ID:SgefIaql0 英語の複数形は便利すぐる
emproyee_list[]の代わりにemproyees[]で済む
大文字小文字でキャメルケースも使えるしほんと出来過ぎ
emproyee_list[]の代わりにemproyees[]で済む
大文字小文字でキャメルケースも使えるしほんと出来過ぎ
955デフォルトの名無しさん (ワッチョイ 0cb3-vBoO)
2018/10/05(金) 01:05:30.84ID:lAZe+Hwv0 単独かコンテナで意味が大きくかわるのに
字面の違いがsのありなしは微妙すぎていまいちだと思ってる
字面の違いがsのありなしは微妙すぎていまいちだと思ってる
956デフォルトの名無しさん (ワッチョイ 529f-QTQU)
2018/10/05(金) 06:55:01.43ID:226EunUa0 しかしそこまでメモリに直触りするならvectorでない方がいい気がするんだが。
957デフォルトの名無しさん (ワッチョイ 9f02-vBoO)
2018/10/05(金) 07:56:42.65ID:Zg//fZBj0 だよな
生メモリがいるなら生メモリ使えってこと
生メモリがいるなら生メモリ使えってこと
958デフォルトの名無しさん (オッペケ Sr10-/FYQ)
2018/10/05(金) 08:13:10.92ID:8YBbWag1r >>956-957
サイズの取得とかオシャレにできないじゃん
サイズの取得とかオシャレにできないじゃん
959デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/05(金) 12:49:05.99ID:cQzHZ22n0 生メモリのサイズの管理の仕方さえ忘れたか
960デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 18:47:04.93ID:4ThlZrTR0961デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 18:49:08.38ID:4ThlZrTR0962デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 18:51:17.31ID:4ThlZrTR0963デフォルトの名無しさん (ワッチョイ 928a-SWBM)
2018/10/05(金) 20:18:06.35ID:2Vgho4wC0 g_とか_sとかなんなんだそれ
964デフォルトの名無しさん (ワッチョイ ba12-A6IM)
2018/10/05(金) 21:02:11.53ID:eXLBKWdN0 秘密の呪文
965デフォルトの名無しさん (ワッチョイ 4634-C4cH)
2018/10/05(金) 21:42:38.07ID:s/+stmcD0 ハンガリアン記法とかいうMSが編み出した負の遺産
966デフォルトの名無しさん (ワッチョイ 9bc3-dNAh)
2018/10/05(金) 21:54:51.59ID:wRA0FWgN0 型付けるハンガリアンは糞だけど、グローバル変数にg_付けるのは普通でしょ
付けないの?
付けないの?
967デフォルトの名無しさん (ワッチョイ df7f-vBoO)
2018/10/05(金) 21:56:47.70ID:zW6/2yxd0 グローバル変数使わないしg_つけてもなんの役にも立たないし
968デフォルトの名無しさん (ブーイモ MM98-Ww/X)
2018/10/05(金) 22:29:36.85ID:dsZIcecxM スコープを示すハンガリアンは変数のスコープを不必要に広げることに対する心理的抵抗を低減するという点で害悪
969デフォルトの名無しさん (ワッチョイ c0f2-vBoO)
2018/10/05(金) 22:48:31.92ID:qdFd1sVz0 あの複雑怪奇な名前解決ルールを受け入れているC++使いからしてみれば、変数が
ローカルかグローバルかなんてわざわざ目印付けるほどのことじゃないのかも
ローカルかグローバルかなんてわざわざ目印付けるほどのことじゃないのかも
970デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 22:49:02.31ID:SgefIaql0 パブロフの犬カヨ
グローバル変数の先頭に「g_」を付け続けると
そのうち先頭に「g_」とつけただけで
グローバル変数の先頭に「g_」を付け続けると
そのうち先頭に「g_」とつけただけで
971デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:02:57.02ID:SgefIaql0 しかしいかにクラスFooに関連するオブジェクトは全部Fooのコンストラクタかsetterで渡すか一時オブジェク
トとしてメソッドの引数として都度渡すのがオブジェクト指向設計としての理想とはいえ実際には対数表のカ
スタマイズ版みたいにかなり普遍的な意味を持つテーブルTが存在する前提でいっぱいクラスを定義したい
ときもあるわけでそういうときはテーブルTをグローバル変数とした方がスマートに書けるTがこの世に1つし
かないのにいちいちインスタンス毎にTへのポインタを持たせるのですかみたいな、
で、そうするとグローバルであることの目立つ標識が欲しいところだがオリジナルの規則を考えるのもアホら
しいので使用人口が多そうな「g_」を使う
トとしてメソッドの引数として都度渡すのがオブジェクト指向設計としての理想とはいえ実際には対数表のカ
スタマイズ版みたいにかなり普遍的な意味を持つテーブルTが存在する前提でいっぱいクラスを定義したい
ときもあるわけでそういうときはテーブルTをグローバル変数とした方がスマートに書けるTがこの世に1つし
かないのにいちいちインスタンス毎にTへのポインタを持たせるのですかみたいな、
で、そうするとグローバルであることの目立つ標識が欲しいところだがオリジナルの規則を考えるのもアホら
しいので使用人口が多そうな「g_」を使う
972デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/05(金) 23:05:20.25ID:cQzHZ22n0 60億人がシステムハンガリアンの良さを発見できなかった
そういうことだ
そういうことだ
973デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/05(金) 23:06:16.17ID:cQzHZ22n0 せっかく自動化したものを蒸し返す愚行
機械に使われる人間に自ら志願するようなことでしかない
機械に使われる人間に自ら志願するようなことでしかない
974デフォルトの名無しさん (バッミングク MMc2-Ww/X)
2018/10/05(金) 23:14:36.32ID:MM5jcfpFM ハンガリアン記法が滅亡した時にgとかsとかのスコーププレフィックスも一緒に絶滅したと思うの。
975デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:19:28.57ID:SgefIaql0 もうそういうのは見飽きたからハンガリアン無差別否定派とアプリケーションハンガリアン推進派が頃しあって消滅してくれたらいいのに…
976デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:22:01.95ID:4ThlZrTR0 「ハンガリアン記法を使うと、コードの断片からでも何かを発見できる。」
977デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:25:38.27ID:4ThlZrTR0 C#では、メンバ変数 aaa をアクセスする時には、必ず、
「this.aaa」
とするらしい。これは、C++で、ハンガリアン記法を使った場合の、
「m_aaa」
に該当する。this. と m_ では、後者のほうが短く便利。
m_ も、this. も付けない場合、たとえば、コンストラクタで
同じ意味の仮引数を使いたい場合に、何らかの別の名前を
考えなければならなくなる。
「this.aaa」
とするらしい。これは、C++で、ハンガリアン記法を使った場合の、
「m_aaa」
に該当する。this. と m_ では、後者のほうが短く便利。
m_ も、this. も付けない場合、たとえば、コンストラクタで
同じ意味の仮引数を使いたい場合に、何らかの別の名前を
考えなければならなくなる。
978デフォルトの名無しさん (ワッチョイ 0104-SWBM)
2018/10/05(金) 23:26:32.77ID:eEmdo3hB0 サイズ変更してキャパシティ変更になったらデリートかかる可能性が高いのでそういうことを一応管理しないといけない。
979デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:28:00.34ID:SgefIaql0 >C#では、メンバ変数 aaa をアクセスする時には、必ず、
>「this.aaa」
>とするらしい。
mjd?
いつから?次の元号から??
>「this.aaa」
>とするらしい。
mjd?
いつから?次の元号から??
980デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/05(金) 23:29:24.93ID:3VgmxBOW0 一般的に言われているシステムハンガリアンのデメリットはg、s、mには当てはまらない。
iとかdwとかlpszみたいな糞接頭辞とは分けて考えたほうがいいと思うよ。
iとかdwとかlpszみたいな糞接頭辞とは分けて考えたほうがいいと思うよ。
981デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:31:13.38ID:4ThlZrTR0 個人的には、以下のような命名規則は大いに役立っており、
コード全体を見ずにコードの断片を見るだけで、何も考えずに
コーディングが出来ることが多くなる。おかげでずいぶん楽になった。
char *pszText;
char szText[256];
CString strText;
char **ppszText;
「sz」は、0終端文字列。s = string、z = zero。
p は、ポインタ、str は、CString。
pp は、ポインタへのポインタ。
コード全体を見ずにコードの断片を見るだけで、何も考えずに
コーディングが出来ることが多くなる。おかげでずいぶん楽になった。
char *pszText;
char szText[256];
CString strText;
char **ppszText;
「sz」は、0終端文字列。s = string、z = zero。
p は、ポインタ、str は、CString。
pp は、ポインタへのポインタ。
982デフォルトの名無しさん (ワッチョイ df7f-vBoO)
2018/10/05(金) 23:36:17.35ID:zW6/2yxd0 m_がついててもそれがメンバである保証が何もないからなあ。無駄なだけ
983デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:39:57.45ID:4ThlZrTR0 >>980
個人的には、i や dw は滅多に使わない。
lpszは、自分では使わない。pszは使う。
なぜなら、lpsz の「l」 は、16BIT時代から32BIT 時代へ移行したときの産物だから、
今は時代遅れなので。
ところで、dwRead と書くと、宣言を見返さなくても、読み込みバイト数を表す DWORD 値だと
分かって便利。dwWrite だと、その書き込み版となる。変数名が規則変化するのでとっても便利。
たとえば、「text」という変数名だと、CString 型なのか、0終端文字列なのか、
0終端が付いてないような特殊な文字列なのかが分からない。
ところが、ハンガリアン記法を使うとそれらが明確に区別できる。
0終端文字列を配列で持っているのか、それとも、そのアドレスをポインタで
持っているのかも、sz か、psz かで区別できる。
このことはバグの少ないコーディングにとても役立つ、。
頭を使わなくても機械的にコーディングできてしまうことが多くなるから。
個人的には、i や dw は滅多に使わない。
lpszは、自分では使わない。pszは使う。
なぜなら、lpsz の「l」 は、16BIT時代から32BIT 時代へ移行したときの産物だから、
今は時代遅れなので。
ところで、dwRead と書くと、宣言を見返さなくても、読み込みバイト数を表す DWORD 値だと
分かって便利。dwWrite だと、その書き込み版となる。変数名が規則変化するのでとっても便利。
たとえば、「text」という変数名だと、CString 型なのか、0終端文字列なのか、
0終端が付いてないような特殊な文字列なのかが分からない。
ところが、ハンガリアン記法を使うとそれらが明確に区別できる。
0終端文字列を配列で持っているのか、それとも、そのアドレスをポインタで
持っているのかも、sz か、psz かで区別できる。
このことはバグの少ないコーディングにとても役立つ、。
頭を使わなくても機械的にコーディングできてしまうことが多くなるから。
984デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:46:52.35ID:SgefIaql0 命名のプレフィックスに関する個人的な熱い想いはカプセルの内側に隠蔽すると良い
そういう意味で「m_」は比較的どうでも良い
そういう意味で「m_」は比較的どうでも良い
985デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/05(金) 23:50:11.62ID:3VgmxBOW0986デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/05(金) 23:51:01.17ID:elz6X2140 こういう話だけは食い付きがいい
さすがドカタ
さすがドカタ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 中国側が首相答弁の撤回要求、日本側拒否★8 [夜のけいちゃん★]
