C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part142
https://mevius.5ch.net/test/read.cgi/tech/1554124625/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
探検
C++相談室 part143
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ)
2019/06/15(土) 13:51:53.57ID:DKQ0QQLH02デフォルトの名無しさん (ワッチョイ)
2019/06/15(土) 16:03:43.75ID:yU4M2XeV0 すっぱい葡萄
ttps://ja.wikipedia.org/wiki/%E3%81%99%E3%81%A3%E3%81%B1%E3%81%84%E8%91%A1%E8%90%84
自分のものにしたくてたまらないにもかかわらず、努力しても到底かなわない対象である場合、
人はその対象を「価値の無いもの」「自分にふさわしくないもの」と見なそうとし、
それをあきらめの理由として納得し、心の平安を得ようとするものである。
フロイトの心理学では、これを防衛機制および合理化の例とする。また、社会心理学においては、認知的不協和の例とされる。
英語には、この寓話を元に生まれた熟語として "sour grapes" があるが、これは「負け惜しみ」を意味する。
ttps://ja.wikipedia.org/wiki/%E3%81%99%E3%81%A3%E3%81%B1%E3%81%84%E8%91%A1%E8%90%84
自分のものにしたくてたまらないにもかかわらず、努力しても到底かなわない対象である場合、
人はその対象を「価値の無いもの」「自分にふさわしくないもの」と見なそうとし、
それをあきらめの理由として納得し、心の平安を得ようとするものである。
フロイトの心理学では、これを防衛機制および合理化の例とする。また、社会心理学においては、認知的不協和の例とされる。
英語には、この寓話を元に生まれた熟語として "sour grapes" があるが、これは「負け惜しみ」を意味する。
3デフォルトの名無しさん (ワッチョイ)
2019/06/16(日) 12:29:06.82ID:yEr4r4hL0 ttps://qiita.com/hirokidaichi/items/adccebb41f77eaa6132f
>Paul曰く:
>人は、その人のアイデンティティの一部となっている事について、実りある議論はできない。
>これすなわち、自分のホームに近い話題ほど論理よりも感情が優先されてしまうということ。
>Kathy曰く:
>他の人が夢中になるほど、そのプロダクトやブランドへの憎しみは強くなる
>これはつまり、彼らはクールエイドを飲んでしまってるということだ。
>Paul曰く:
>人は、その人のアイデンティティの一部となっている事について、実りある議論はできない。
>これすなわち、自分のホームに近い話題ほど論理よりも感情が優先されてしまうということ。
>Kathy曰く:
>他の人が夢中になるほど、そのプロダクトやブランドへの憎しみは強くなる
>これはつまり、彼らはクールエイドを飲んでしまってるということだ。
4デフォルトの名無しさん (ワッチョイ)
2019/06/16(日) 16:55:32.05ID:NJ2skO190 質問です。
https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。
2017ではできていた気がしたけど、なぜですか?
https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。
2017ではできていた気がしたけど、なぜですか?
5デフォルトの名無しさん (ワッチョイ)
2019/06/16(日) 17:32:43.45ID:/ZY8dphZ0 thinkFirst
ThinkFirst
オーバーライドするときはoverrideつけたら?
ThinkFirst
オーバーライドするときはoverrideつけたら?
6デフォルトの名無しさん (ワッチョイ)
2019/06/16(日) 17:36:44.99ID:NJ2skO1908デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 00:12:48.76ID:oaY4OAXG09デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 00:55:04.38ID:qMa7jD650 getterは読み取り専用のメンバを作りたいときに必要
setterはpimpl化したときに必要
setterはpimpl化したときに必要
10デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 01:18:11.69ID:a5RA1dZMa const publicがあればいいのか
11デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 09:36:57.72ID:FBMbqlks0 getterならread only修飾子を導入して
コンパイル時に書きこまれないことを保証すればいい
かんたんだろ
コンパイル時に書きこまれないことを保証すればいい
かんたんだろ
12デフォルトの名無しさん (ブーイモ)
2019/06/17(月) 09:43:06.17ID:NDzOpmZcM mutable なオブジェクトだとしても、setter を付けるメンバー変数は少ないな。
3つのうち1つぐらいの感じ。
3つのうち1つぐらいの感じ。
13デフォルトの名無しさん (スップ)
2019/06/17(月) 14:59:51.76ID:otIzoLhyd セマンティクス上で重要なメンバ関数の区別は、オブジェクトの内部状態を変更するものか(非constメンバ関数)と、変更せずに内容を見るためのものか(constメンバ関数)の違いであって
その具体的な処理内容が特定のprivateデータメンバのgetterかsetterかなんて観点は大して重要じゃないし、そんなものに固執して設計を考えるのは馬鹿馬鹿しいし危険だと思う
その具体的な処理内容が特定のprivateデータメンバのgetterかsetterかなんて観点は大して重要じゃないし、そんなものに固執して設計を考えるのは馬鹿馬鹿しいし危険だと思う
14デフォルトの名無しさん (ブーイモ)
2019/06/17(月) 15:13:59.52ID:NDzOpmZcM >>13
「状態を変更」の方はまあいいけど「内容を見る」という表現は狭すぎないか。
「状態を変更」の方はまあいいけど「内容を見る」という表現は狭すぎないか。
15デフォルトの名無しさん (スップ)
2019/06/17(月) 15:20:09.82ID:otIzoLhyd そうね引数を加工するとか他のオブジェクトへのプロキシになるとか色々あるね
getterのイメージに引きずられすぎちゃった
getterのイメージに引きずられすぎちゃった
16デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 15:54:46.05ID:cgazGIue0 コンテナのset, map, multi_mapはconst_iteratorじゃないと正しくforループを回せないって制限あった気がする。どうだっけ?
17デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 16:13:33.58ID:ikLTlFyV0 ペアのインデックサがわを弄ったら、ソートぶっこまれて順番が狂う感じの奴かい?
18デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 17:06:03.61ID:xa2u5Y3Ua 構造体のメンバ変数をまとめて以下のように文字列でアクセスできるようにしたいのですが、
構造体のポインタを以下のpointerに一括で割り当てる方法はないでしょうか?
Params {
int param1, param2;
} params;
std::map<std::string, void*> pointer;
// 同じ操作
params.param1 = 1;
*static_cast<int*>(pointer["param1"]) = 1;
構造体のポインタを以下のpointerに一括で割り当てる方法はないでしょうか?
Params {
int param1, param2;
} params;
std::map<std::string, void*> pointer;
// 同じ操作
params.param1 = 1;
*static_cast<int*>(pointer["param1"]) = 1;
19デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 17:11:32.29ID:xa2u5Y3Ua Paramsは複数の型のメンバ変数を持ちますがpointerにtypeidを合わせて持たせることで使用時の問題は解決できます
20デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 17:11:48.82ID:cgazGIue0 >>18
日本語でok
日本語でok
21デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 17:15:04.87ID:xa2u5Y3Ua 以下のように一つずつ割り当てるのではなく、構造体に含まれるメンバの名前とポインタをイテレートして割り当てたいのです
pointer["param1"] = ¶ms.param1;
pointer["param2"] = ¶ms.param2;
pointer["param1"] = ¶ms.param1;
pointer["param2"] = ¶ms.param2;
22デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 17:26:50.49ID:FBMbqlks0 リフレクションすれば早い
そうでしょう?
そうでしょう?
23デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 18:55:58.16ID:8WZxEIm50 そこでプロパティ型ですよ。
24デフォルトの名無しさん (ブーイモ)
2019/06/17(月) 21:01:33.96ID:kTiNst+JM 中身が長ったらしい(と言っても200行程度)ラムダ式ってやめたほうがいいですか?
一般的には普通の関数にするんでしょうがヘッダーに書きたくないんです
一般的には普通の関数にするんでしょうがヘッダーに書きたくないんです
25デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 21:09:43.46ID:Xk2fRyfla その関数に名前がつけれないならいいんじゃない
26デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 21:20:42.23ID:qMa7jD650 ヘッダーに書きたくないって…、cpp内で関数を宣言/定義してもいいんだぞ
27デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 22:03:41.11ID:cgazGIue0 ラムダ式の存在意義は、コンパイラではなく人間にとっての可読性の改善にある。
どうも可読性が低いなぁと思ったら、ラムダ式をやめるべきだね。
どうも可読性が低いなぁと思ったら、ラムダ式をやめるべきだね。
28デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:09:14.61ID:W17QvXl10 >その関数に名前がつけれないならいいんじゃない
完全にダメなパターンだろ。。
完全にダメなパターンだろ。。
29デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:37:37.03ID:ZwasbMRy0 カッコよくラムダで比較関数を書いたものの、あちこちで同じ比較関数が必要になって結局関数オブジェクトを作る不毛な作業
30デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:40:11.50ID:D3j4bHhT0 >>21
c++使わないのが正解
c++使わないのが正解
31デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:44:17.67ID:DTomrwq60 >>29
別にいいじゃない
別にいいじゃない
32デフォルトの名無しさん (アウアウウー)
2019/06/17(月) 23:44:34.66ID:DMQyXySba >>29 わざわざ関数オブジェクト作成するくらいならラムダをauto変数にいれるのはどうですか?
33デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:45:22.46ID:W17QvXl10 クロージャの利点っていうのは
クラスとメソッドに比べたらアクセスするデータのスコープがわかりやすく渡せるってことだが
c++だと同時にデータが処分されるタイミングを考えなきゃならなくて逆にむずい。
クラスとメソッドに比べたらアクセスするデータのスコープがわかりやすく渡せるってことだが
c++だと同時にデータが処分されるタイミングを考えなきゃならなくて逆にむずい。
34デフォルトの名無しさん (ワッチョイ)
2019/06/17(月) 23:49:52.62ID:x+yzwFNm0 大抵の言語でループ変数をキャプチャするlambdaを配列に入れるとかするとはまるよね
c++の場合コピーキャプチャ使えばすむけど、キャプチャ方式指定できない言語だと結構面倒なことになる
c++の場合コピーキャプチャ使えばすむけど、キャプチャ方式指定できない言語だと結構面倒なことになる
35デフォルトの名無しさん (ブーイモ)
2019/06/17(月) 23:56:31.71ID:kTiNst+JM36デフォルトの名無しさん (ワッチョイ)
2019/06/18(火) 03:06:02.01ID:0f68xvDd0 >>22
リフレクションっていうんですね
このサイトのリフレクションの実装を超簡易的に真似してみました
結局一つずつ追加することになりますが扱いやすさは悪くないはず…
http://motchy-usk.blogspot.com/2010/07/blog-post.html
https://ideone.com/zc6oHM
リフレクションっていうんですね
このサイトのリフレクションの実装を超簡易的に真似してみました
結局一つずつ追加することになりますが扱いやすさは悪くないはず…
http://motchy-usk.blogspot.com/2010/07/blog-post.html
https://ideone.com/zc6oHM
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 悪気はないのに、不意に相手を傷付けてしまう事ってあるんだな
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
- 僕が未だに紙の単行本を集めてる漫画が「ご注文はうさぎですか?」「ゆるゆり」「大室家」「邪神ちゃんドロップキック」なんだが
