1 名前:デフォルトの名無しさん (ワッチョイ dfcf-HvS5) mailto:sage [2017/01/09(月) 14:49:27.56 ID:p96WJVyd0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part128 echo.2ch.net/test/read.cgi/tech/1480172629/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
488 名前:デフォルトの名無しさん (ブーイモ MMc7-Ccab) mailto:sage [2017/02/24(金) 09:58:19.90 ID:bBhQmgr7M.net] >>477 出来ます。テンプレートで使われるのが一番多いかな? func(T& dst)に対してint*を渡すみたいなパターン
489 名前:デフォルトの名無しさん (アウアウカー Saeb-uNyc) mailto:sage [2017/02/24(金) 10:28:09.00 ID:e/BP7pNwa.net] それは初心者用質問スレで訊くのが合っていますよ
490 名前:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ) mailto:sage [2017/02/24(金) 11:40:07.36 ID:9xRtAprE0.net] auto&&とint&&は機能的に別物と考えていいのかな。 int&&は右辺値参照を実現する記法で、auto&&は参照の参照を実現するための仕組みという認識なんだけど。
491 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/24(金) 12:43:18.76 ID:quEFnRbB0.net] 人に聞く前になぜ自分でやってみようとは思わないの?
492 名前:デフォルトの名無しさん (スップ Sd4a-36q6) [2017/02/24(金) 13:15:08.70 ID:u1ntmSSgd.net] 試してもその環境では動くということしか確かめられないから
493 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/24(金) 22:09:09.79 ID:OddQnmIq0.net] 実現するのが目的ではないだろうけど auto &&のauto部分がX &に解決されるのはどうも気持ち悪い
494 名前: ◆QZaw55cn4c (ワッチョイ 4613-8lb6) mailto:sage [2017/02/24(金) 22:22:18.18 ID:4ewDjGBZ0.net] >>477 できる,二重ポインタより分かりやすい
495 名前:デフォルトの名無しさん (ワッチョイ 1f30-GZNV) mailto:sage [2017/02/25(土) 00:02:24.64 ID:5D288ePc0.net] >>480 テンプレートの型パラメータと普通の型の関係と同じようなもの 機能的に完全に別物というより一段上に追加機能のレイヤーがあるかないかの違い
496 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/25(土) 00:13:15.17 ID:Bto43eGs0.net] まあautoの部分はXにもX*にもX&にも解釈可能だからトーシローは錯覚する罠
497 名前:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ) mailto:sage [2017/02/25(土) 12:29:14.82 ID:xXEZYycv0.net] auto&&はreference collapsingっていう仕組みらしいけど江添氏はこの機能の解説してないんだよね。 だから右辺値参照の仕組みと透過性があるものなのだと思ってた。 右辺値参照の仕組みを理解すればおのずと理解できるもんだと思ってた。
498 名前:デフォルトの名無しさん (ワッチョイ 63a6-8lb6) mailto:sage [2017/02/25(土) 13:33:16.56 ID:THbYlaQi0.net] これとかじゃなく? https://cpplover.blogspot.jp/2014/09/c14-decltypeauto.html
499 名前:デフォルトの名無しさん (アウアウカー Saeb-uNyc) mailto:sage [2017/02/25(土) 18:59:53.13 ID:A0aZ5Z9Sa.net] 江添はそう言ってる?
500 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/25(土) 21:48:53.39 ID:r3+UW6Ch0.net] 江添の説明はこれだな 『テンプレート実引数推定のルールで型推定が行われる』 『できるだけ普通のプログラマーの常識に合わせるために、とても複雑になっている』 以上
501 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 14:18:25.09 ID:XaQXd7Ck0.net] libc++ の挙動にバグっぽいものを見付けたんで cfe-dev に投げたんですが ttp://lists.llvm.org/pipermail/cfe-dev/2017-February/052807.html 応答がありません…もっとふさわしい場所ってあるんですかね? っていうか std::is_abstract が純粋仮想関数入りのクラステンプレートに対して false 返すのって規格に照らしてどうなんでしょう?
502 名前:デフォルトの名無しさん (オッペケ Sr23-2lVT) mailto:sage [2017/02/27(月) 18:50:50.34 ID:mrZfm/tmr.net] テンプレートクラスならともかくクラステンプレートならコンパイルエラーにならないとおかしい ちなみにただのバグにしか見えない
503 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 20:02:23.96 ID:XaQXd7Ck0.net] なるほど、テンプレートクラスと言えばいいんですね。 適切な言葉をちゃんと知りませんでした。
504 名前:デフォルトの名無しさん (ワッチョイ a37b-mxZJ) [2017/02/27(月) 20:55:00.96 ID:Of/Kbntx0.net] https://bugs.llvm.org// バグ報告はここじゃね?
505 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/27(月) 21:11:47.21 ID:4UiY0/x/0.net] libc++ではなくてclangが腐ってるようにも見える melpon.org/wandbox/permlink/GCDP7CU2HzUOMMML
506 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 21:22:12.75 ID:XaQXd7Ck0.net] >>494 New user self-registration is currently disabled らしいのでどうせメールするならメーリスでいいか、 というのと規格的にどうなのかよくわからなかったので…
507 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 21:25:24.26 ID:XaQXd7Ck0.net] >>495 g++ で libc++ を使わせても同じ挙動だったのですが どうなってるんでしょうね?
508 名前:デフォルトの名無しさん (スプッッ Sd33-moPN) mailto:sage [2017/02/28(火) 09:18:02.99 ID:cUxO9p4sd.net] long→short 警告でない size_t→int 警告出る 警告出たり出なかったりの違いってなんなんだ? 上記二つとも出ると思っていたのだが
509 名前:デフォルトの名無しさん (スップ Sd4a-36q6) [2017/02/28(火) 09:25:14.27 ID:+UqvplX+d.net] unsignedでは
510 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/28(火) 09:41:23.40 ID:Mx4bsJ8G0.net] 警告を出すか出さないかはコンパイラのオプションで自由に選べる
511 名前:デフォルトの名無しさん (スプッッ Sd33-moPN) mailto:sage [2017/02/28(火) 11:50:09.20 ID:cUxO9p4sd.net] >>499 それだと思ったのだけどsize_tでも出ないところと出るところがある なんなんだこれ
512 名前:デフォルトの名無しさん (ワッチョイ 466c-fGBt) mailto:sage [2017/02/28(火) 13:37:18.52 ID:XuG6C30R0.net] template<typename T> T f(const T& x){return x;} template <int N> struct S{ int a[N];} template<>template<int N> S<N> f(const S<N>& x){S<N> r; r.a[0] = x.a[0]; return r;} こんな感じのコードで Extraneous template parameter list in template specialization って警告されるんですけど何が問題でどう書くのが正解なんですかね?
513 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/28(火) 13:40:56.38 ID:Mx4bsJ8G0.net] >>502 特化テンプレートを使う場合は型や値を明記しなけりゃならない この場合はNの数値を明記しなけりゃいけない
514 名前:デフォルトの名無しさん (ワッチョイ 466c-fGBt) mailto:sage [2017/02/28(火) 13:45:44.39 ID:XuG6C30R0.net] ああなるほど・・・ Nが多いからテンプレートしてるのに手間ですな・・・
515 名前:デフォルトの名無しさん (ワントンキン MMfa-cxDF) mailto:sage [2017/02/28(火) 14:36:02.06 ID:t3AtpORvM.net] 出先だから書いてないけどvaliadic templateと再帰で全部インスタンス化できそうだけど
516 名前:デフォルトの名無しさん (ワッチョイ 1f30-GZNV) mailto:sage [2017/02/28(火) 18:49:47.90 ID:jvds/XNw0.net] 最初のfの特化じゃなくて別のテンプレートのfでオーバーロードするだけ template<typename T> T f(const T& x){return x;} template<int N> struct S{ int a[N];}; template<int N> S<N> f(const S<N>& x) { S<N> r; r.a[0] = x.a[0]; return r; }
517 名前:デフォルトの名無しさん (オッペケ Sr23-2lVT) mailto:sage [2017/03/01(水) 12:26:23.09 ID:2EZ/mUsgr.net] >>501 もしかして定数の値が欠損していない場合では constexpr size_t v1 = 32767; int32_t v2 {v1}; //たぶん警告は出ない
518 名前:デフォルトの名無しさん (ワッチョイ 1f90-BJNc) mailto:sage [2017/03/02(木) 19:18:35.64 ID:x/1yO3Ie0.net] ++演算子で延々とループできるリングバッファみたいなコンテナってあると便利だと思うんですが STLに入っていないのはなんでですか?
519 名前:デフォルトの名無しさん (ワッチョイ 6b02-2BvX) mailto:sage [2017/03/02(木) 19:23:17.02 ID:6rzvDmku0.net] 提案されていたけどまだ入ってない
520 名前:デフォルトの名無しさん (ワッチョイ 6b02-2BvX) mailto:sage [2017/03/02(木) 20:02:04.86 ID:6rzvDmku0.net] ごめん違う奴だった勘違いしてた
521 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/03(金) 00:07:16.62 ID:TsTyuoGu0.net] class Fooに対して演算子(例えば「|=」)のオーバーロードを使って Foo& operator|=(const Foo& rhs) { (*thisとrhsの演算結果を*thisに入れる) ; return *this; } とか定義する例を見る気がしますが、 こういうパターン(演算結果を返すと共に*thisの値が破壊される)なメソッドを演算子のオーバーロードでなく名前で実装するとしたら get〜とすべき?それともset〜が普通?
522 名前:デフォルトの名無しさん (ワッチョイ ef6c-HgeV) mailto:sage [2017/03/03(金) 00:10:55.24 ID:MwnP4WDg0.net] 普通setじゃない?
523 名前:デフォルトの名無しさん (ワッチョイ 9fed-OGW1) mailto:sage [2017/03/03(金) 00:15:24.61 ID:/S0wuqbS0.net] setの戻り値にsetされた値が返ってきても違和感ないけど、getで中身変わったらキレる 質問からはズレるけど、演算処理が入るならupdateとかその辺のどちらでもない名前にしとくのが良いと思うなあ
524 名前:デフォルトの名無しさん (ワッチョイ 1fcc-+LoG) mailto:sage [2017/03/03(金) 01:57:52.71 ID:gLymaIrQ0.net] 無いものは自分で作ればいいのよ パンがなければお菓子を食べればいいのよ
525 名前:デフォルトの名無しさん (ワッチョイ eb7b-2BvX) mailto:sage [2017/03/03(金) 02:12:38.68 ID:ApTpm6Xd0.net] 先輩 お金がないならATMに行けばいいじゃないですかぁ
526 名前:デフォルトの名無しさん (ワッチョイ 5fd4-CqFM) mailto:sage [2017/03/03(金) 05:32:35.45 ID:v1le7QT40.net] その|=の演算を意味する名前だろ。
527 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/03(金) 09:23:46.53 ID:EiwPmmlf0.net] ビットORでsetというと「ビットを立てる」という意味か? だとしたらビットANDでreset、ビットXORでflipか
528 名前:デフォルトの名無しさん (ササクッテロル Spef-OGW1) mailto:sage [2017/03/03(金) 09:35:11.95 ID:CN7XccVQp.net] ビット演算はただの例でしょ
529 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/03(金) 09:53:32.07 ID:EiwPmmlf0.net] 副作用のある演算子なら+=や--もあるわけだが それもひっくるめて一概にsetかgetかと問うのに例が|=なのか
530 名前:デフォルトの名無しさん (ワッチョイ abd9-8nUV) mailto:sage [2017/03/03(金) 11:08:49.61 ID:mnS2IoUK0.net] >>513 カウンタとかオートインクリメントする奴があるだろ もっとカルシウム取った方が良いぞ
531 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/03(金) 11:52:47.71 ID:8SEA7Mtt0.net] カウンターのインクリメントにgetなんて名前付けないでしょ
532 名前:デフォルトの名無しさん (スプッッ Sdef-cA0b) [2017/03/03(金) 11:56:49.79 ID:LaI4btVTd.net] GetNextFrameなのに内部で動画のデコードが行われるミドルウェアがあった
533 名前:デフォルトの名無しさん (ドコグロ MM2f-Y1yA) mailto:sage [2017/03/03(金) 12:46:37.01 ID:hxiWJWmXM.net] >>520 それカウンタのインクリメントがメインじゃないだろ (メインの機能なら単なるバカ) 他にも取得したデータをキャッシュしとくとかでオブジェクトの状態を変える奴はある >>522 デコードしたフレームが取得できるとかじゃなくて?
534 名前:デフォルトの名無しさん (ワッチョイ 1f7f-RJLO) mailto:sage [2017/03/03(金) 13:00:47.12 ID:qCQIHM4i0.net] >>522 PopNextFrameにしろって文句つけたら
535 名前:デフォルトの名無しさん (スプッッ Sdef-cA0b) [2017/03/03(金) 13:15:03.93 ID:LaI4btVTd.net] >>523 フレーム番号を取得する機能とデコードの機能が一つになってる
536 名前:デフォルトの名無しさん (ワッチョイ 1f7d-M3Ci) [2017/03/03(金) 13:33:04.16 ID:UcAC+2mM0.net] >>514 マリー・アントワネットのこの言葉は、事実ではなくて、 『マリー・アントワネット』を書いたシュテファン・ツバイクの創作 だという説もあるね
537 名前:デフォルトの名無しさん (ワッチョイ cb3c-m4jB) [2017/03/03(金) 14:59:24.75 ID:BCfaURI80.net] ロベールのC++入門講座持っている人に質問 p.537一番下のテンポラリオブジェクトの寿命と p.543のテンポラリオブジェクトの寿命の違いがいまいちよくわからないんだけど もう少し詳しく解説してくれませんか?
538 名前:デフォルトの名無しさん (ドコグロ MM2f-Y1yA) mailto:sage [2017/03/03(金) 19:06:53.97 ID:hxiWJWmXM.net] >>525 そのまとめかたがいいかどうかは知らんけど名前は特に違和感ないけどな
539 名前:511 (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/03(金) 20:51:41.34 ID:TsTyuoGu0.net] レスdクス >>512 なるほど言われてみればそんな気がする >>513 確かに言われてみればそうかもしれない >>516 ごもっとも言われてみればその通りに思える もとの「|=」は和集合を求める演算のつもりだったので setUnionという名前にした、
540 名前:デフォルトの名無しさん (ササクッテロル Spef-OGW1) mailto:sage [2017/03/03(金) 22:11:43.72 ID:CN7XccVQp.net] ちなみにJavaでよく使われるByteStreamのgetシリーズは値を読み出しつつ参照位置を進めるメソッドになっている 個人的にはreadあたりに改名しろやと思わなくもないけど、getでしれっと中身が変わるのは稀によくある つまりC++のconstメンバ関数は素晴らしい
541 名前:デフォルトの名無しさん (ササクッテロル Spef-OGW1) mailto:sage [2017/03/03(金) 22:13:19.97 ID:CN7XccVQp.net] ByteBufferだわ
542 名前:デフォルトの名無しさん (ワッチョイ 5b30-EN75) mailto:sage [2017/03/04(土) 00:38:16.02 ID:gb3ZxOZZ0.net] それは設計の視点・方向性の違い コンテナ/ホルダーとみるならgetで状態が変わらない方が自然だけど ジェネレータとみるならgetで値を返しつつ状態が変わる(次の値の用意をする)のも自然だ
543 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/04(土) 08:01:38.91 ID:NPMNhlmj0.net] 読み取り動作と進行動作は本来別な話だが I/Oを進行なしで読み取らせようとすると キャッシュせにゃあかんのでそこは副作用となる C++にはそのためにmutableがあるので問題にはならん ただしポートを叩くのとアクセス管理は別な問題なので 1つのクラスに一緒くたに突っ込む設計に俺は反対
544 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/04(土) 08:40:11.52 ID:sD1+OZIDr.net] 珍妙な持論だ だがiostreamの>>やstdioのfreadやソケットのrecvも 読み取り命令と進行命令を別にすべきという考えなら一貫性はある
545 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/04(土) 08:45:52.42 ID:IfQ9fk2A0.net] >>532 > コンテナ/ホルダーとみるならgetで状態が変わらない方が自然だけど そう言うのは Peek でいいかと
546 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/04(土) 09:59:29.30 ID:JHoGQxOg0.net] I/Oに近い低水準レイヤ────で読み取りと進行が不可分なケースは 物理法則からくる制約と処理効率の兼ね合いからそうしているはずで 読み取り+進行、という操作に業界固有の用語が存在はずだから その用語を使えば良いんじゃないの いったんメモリに乗ってしまったデータは使われ方が1種類で決まりきっているとかいった 特殊なケースを除き、取得と変更わ分けるのが正義 この領域において不必要なオブジェクトの変更を放置するのは チューリングマシン
547 名前:の計算モデルで物事を初期化しないプログラマーレベル [] [ここ壊れてます]
548 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/04(土) 10:39:59.31 ID:IfQ9fk2A0.net] ちゅーりんぐましんしってるおれすげーくん w
549 名前:デフォルトの名無しさん (ワッチョイ ab98-T7IB) mailto:sage [2017/03/04(土) 11:12:56.99 ID:+pEijc2g0.net] 読みにくい日本語から漂うアスペ感
550 名前:デフォルトの名無しさん (ワッチョイ 3b0e-RhaL) mailto:sage [2017/03/04(土) 12:55:27.75 ID:r8uNi5/x0.net] getc
551 名前:デフォルトの名無しさん (ワッチョイ bb02-5QEK) mailto:sage [2017/03/04(土) 22:54:48.79 ID:zKraxpcF0.net] デフォルトコンストラクタを持たないメンバーの初期化をしたいのだけど、 初期化が複雑だから初期化リストに含めたくない場合ってみんなどうしてるの?unique_ptrに変更する?
552 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 00:17:33.91 ID:n48qZSY3M.net] >>540 builder patternを使う
553 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 00:27:52.82 ID:qOQ2PN1U0.net] >>540 複雑ってのがよくわからんのだけど、例えばどんな? 単に引数を求める形に変換する必要があるとかならヘルパ関数作るだけ
554 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 01:30:40.03 ID:gIuIuvFQ0.net] >>541 まぁこれ
555 名前:デフォルトの名無しさん (ワッチョイ bb02-5QEK) mailto:sage [2017/03/05(日) 09:53:23.05 ID:Ur8kOvvv0.net] 説明不足でした。すみません。 class Car { . Engine e; //<デフォルトコンストラクタをもたない }; みたいなクラスでeを初期化するのに . 適切なトルクの計算; . 適切な燃費の計算; . e = Engine(トルク, 燃費); とかしないといけなかったら、 Car : e(トルク, 燃費) {}みたいに初期化するのは難しいよね? みなはどうしてるの?
556 名前:デフォルトの名無しさん (ワッチョイ 3b0e-RhaL) mailto:sage [2017/03/05(日) 10:36:02.63 ID:2RIrBifF0.net] 適切なトルクの計算や、適切な燃費の計算なんて処理はそのクラスのコンストラクタ以外じゃ使わないような特殊なものなの? それはCarが計算すべきものなの? 別の関数でも用意して、Carのコンストラクタにエンジンの初期化情報を渡させるような作り方をするのが普通じゃね。
557 名前:デフォルトの名無しさん (ワッチョイ 1fcc-+LoG) mailto:sage [2017/03/05(日) 10:38:36.22 ID:X9OstEVD0.net] Engineクラスに別途Initialize()メソッドを持たせるだけ 無理にコンストラクタで全部やろうとする設計がバカっぽい
558 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/05(日) 10:58:54.48 ID:w6jz+T9vr.net] >>544 が説明不足なんじゃなくて ビルダーパターンと言う言葉を覚えて レスも良く読まずに単語レベルで反応したアホがいるだけ
559 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 11:13:35.88 ID:gIuIuvFQ0.net] Engineにコピーコンストラクタかムーブコンストラクタ作って、CarにEngineを受け取るコンストラクタを作る Initializeメソッド付けるのは「オブジェクトを作ったら必ずInitializeを呼ぶ」ってルールを守らなきゃ使えないクラスになるから好み分かれると思う
560 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/05(日) 11:45:46.07 ID:w6jz+T9vr.net] デフォルトコンストラクターを作ることがはばかられる質問者は ムーブコンストラクターを作ることができない可能性がある という発想には至らなかったようだ
561 名前:デフォルトの名無しさん (ワッチョイ 1f59-NqFr) [2017/03/05(日) 11:55:22.78 ID:69Hgyfek0.net] ラムダ式でやろう class Car{ t toruku{ 100 }; n nenpi{ 200 }; Engine e{ [](auto&& toruku, auto&& nenpi){ return { toruku * 2, nenpi * 3 }; }( this->toruku, this->nenpi ) }; };
562 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 11:55:25.99 ID:uSZUgTTE0.net] >>546 その設計はEngineの宣言(Engiine e;)からe.Initialize()呼び出しまでの間を持たせるために、 Engineに無理矢理デフォルトコンストラクタを付ける設計変更を要す、 仮にInitialize()をeではなくファクトリメソッドとするなら >>540 にてすでに >unique_ptrに変更する? としてすでに言及されているパターンと実質同じなのでは…
563 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 11:58:09.92 ID:uSZUgTTE0.net] >>548 横だがおk
564 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 12:18:26.47 ID:gIuIuvFQ0.net] >>549 デフォルトコンストラクタが作れないケースとムーブ
565 名前:(コピー)コンストラクタが作れないケースは全く違うと思うけど、どうしてそんな可能性があるって発想に至ったの? [] [ここ壊れてます]
566 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 12:23:52.28 ID:h33ckUPTM.net] 俺はいつもコンストラクタは デフォルトコンストラクタ(必要に応じて) コピコン、ムブコン メンバをすべて受け取るコンストラクタ しか作らんけどなぁ メンバを作るのが少しでもややこしければstaticなcreateみたいなの作ってそこでメンバ作る
567 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 12:26:06.75 ID:h33ckUPTM.net] あと、ポインタで持つのはポリモーフィズムを期待するときだけだわ C++でnullにしておきたいからポインタにするってなんかへんじゃね? 使うとき毎回nullチェックするポリシーも一緒に維持しないといけなさそう
568 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/05(日) 12:49:35.40 ID:f7+gl1ia0.net] >>553 違うから可能性がない とでも言うのか? そのクラスは触れないだろうな って考えるのが普通だと思うが
569 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:05:22.78 ID:uSZUgTTE0.net] >>544 の >eを初期化するのに >. 適切なトルクの計算; >. 適切な燃費の計算; >. e = Engine(トルク, 燃費); >とかしないといけなかった がデフォルトコンストラクタの追加が困難な理由を表してゐる、 次は>>566 がコピーコンストラクタやムーブコンストラクタの追加が困難な理由を説明する番なのでは…
570 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 13:18:33.58 ID:gIuIuvFQ0.net] どこの世界の普通だそれ… Engineが仕事上触れないなら諦めてポインタで持つしか無いんじゃね Carの初期化時点(コンストラクタ呼び出し時点)ではEngineは初期化するための情報が無いんだから、コンストラクタの中かInitialize関数かで後から初期化するしか無いでしょ >>550 のラムダ式が使えればそれでも出来そうに見えるけど、initializer_listってこんな使い方できたっけ?
571 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 13:39:08.47 ID:qOQ2PN1U0.net] class Car{ static double 燃費計算(); static double トルク計算(); Engine e; public: Car():e(トルク計算(),燃費計算()){} }; これだけの話じゃねえの?
572 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:41:57.26 ID:uSZUgTTE0.net] >>559 はCarクラスにエンジンの詳細(燃費計算()とかトルク計算())を含める設計に何の疑問も抱かないのか…
573 名前:デフォルトの名無しさん (ササクッテロリ Spef-OGW1) mailto:sage [2017/03/05(日) 13:44:52.75 ID:rDGU9DZ0p.net] >>559 Engineクラスを触らない前提ならこれでいいな
574 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 13:44:54.60 ID:qOQ2PN1U0.net] >>560 例えでしかないんだから細かいところにつっこみ入れてもしょうがないだろ?
575 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:47:42.42 ID:uSZUgTTE0.net] Carクラスにstaticメソッドでエンジンの詳細を持たせる結果、 >>561 が指摘するようにCarクラスのエンジン換装を不可能にしておいて 「細かいところ」とのたまう神経の図太さは そのうち大成するやつかもわからんね…
576 名前:デフォルトの名無しさん (スププ Sd3f-OGW1) [2017/03/05(日) 14:06:10.31 ID:HN9/KcX+d.net] CD-R
577 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/05(日) 14:16:16.25 ID:f7+gl1ia0.net] >>557 頭大丈夫? 初期値が与えられていない状態にするって言うディフォルトコンストラクタなんていくらでもあるぞ そんなのはディフォルトコンストラクタが作れない理由になんてなってない
578 名前:デフォルトの名無しさん (ササクッテロリ Spef-OGW1) mailto:sage [2017/03/05(日) 14:25:52.76 ID:rDGU9DZ0p.net] 設計上の理由とか仕事の分担上の理由とか工数的な理由とか、その時々で選択される結果は違うから色んな案が出るのは良いと思うんだけどさ 全く案出さないでひたすら回答にケチ付けてるだけの奴は何なのよ
579 名前:デフォルトの名無しさん (ワッチョイ ef1d-NqFr) mailto:sage [2017/03/05(日) 16:05:02.59 ID:35hcvBBa0.net] このスレッドでいいのかどうかわからないのですが、 皆さんのお知恵を拝借させてください。 当方自作PCにてWindows10 Pro 64bit環境を使用しておりますが、 PCゲームでWorld of Warshipsというゲームをやっています。 ところが、先月半ばからCPUに過度の負荷がかかるようになり、 原因をいろいろと調べていたところ、起動中のCPUプロセスを詳細に調べることになり、 Process Explorerというソフトでゲーム起動中のプロセスを詳しく見てみたんですが、 動作中に「MSVCR110.dll」というファイルへのアクセスが集中し、同じプロセスが5つ以上、 それも1つにつきCPU占有率5%以上使う状態なんです。 正常稼働時↓ www.dotup.org/uploda/www.dotup.org1176183.jpg 以上稼働時↓ www.dotup.org/uploda/www.dotup.org1176184.jpg www.dotup.org/uploda/www.dotup.org1176185.jpg 同じゲームをプレイしているWin7使用中の友人のPCには、 そもそもこの「MSVCR110.dll」というファイル自体が出てきませんでした。 これはOS標準搭載以外のMS製アプリが一つも入ってないからだと考えられ、 尚且つ、名前からしてVisual C++関連のファイルだと思われます。 なぜこれだけ負荷がかかるようになってしまうのか、 どなたかこの状況をご理解頂ける方いらっしゃるでしょうか? ご意見をお伺いできれば幸いです。 よろしくお願いします。
580 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 16:28:50.51 ID:gIuIuvFQ0.net] C++ってキーワードでここに来たんだと思うけど、残念ながらスレ違い、ゲームの本スレとかで聞くのが良いんじゃないか 一応エスパーで回答するなら、セキュリティソフトに邪魔されて負荷上がってるってのが考えられるから、一旦セキュリティソフトを止めるなり例外設定するなりして試してみては
581 名前:デフォルトの名無しさん (ワッチョイ ef1d-NqFr) mailto:sage [2017/03/05(日) 18:38:44.74 ID:35hcvBBa0.net] >>568 スンマセン、ゲーム本スレと質問スレで書き込んだら 「スレ違い。自作板のWindowsスレかC++スレ行け」と言われたとです(´・ω・`)
582 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/05(日) 19:42:29.47 ID:hQyyoOdR0.net] >>569 ローカルルールくらい読みなさい ここはプログラムを作る人のための板 プログラムを作る人になりたいのなら、まず本屋に行って入門書かって自習してから出直しなさい
583 名前:デフォルトの名無しさん (ワッチョイ bb22-jbjN) mailto:sage [2017/03/05(日) 20:40:15.08 ID:N295BQKw0.net] >>567 visual c++を動かすためのランタイムだからそれ自体が原因ではないと思う
584 名前:デフォルトの名無しさん (ワッチョイ 6bf2-Guy/) [2017/03/05(日) 21:59:02.84 ID:89WGHivw0.net] 署名んとこ見る限り自分ところでカスタマイズしたRuntimeDLL使ってるのか? 公式フォーラムで聞くか直接開発に問い合わせた方がいいんじゃね?普通に考えて
585 名前:デフォルトの名無しさん (ワッチョイ dbc9-n7ZK) mailto:sage [2017/03/05(日) 22:58:25.66 ID:9n7ykkeL0.net] >自分ところでカスタマイズしたRuntimeDLL 普通に考えるとACCSに通報ではないのか
586 名前:デフォルトの名無しさん (ワッチョイ 1f7f-RJLO) mailto:sage [2017/03/06(月) 02:22:12.19 ID:sc7bChPJ0.net] ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0352r1.pdf に "An implementation using Clang is being worked on." ってあるけど どこにおいてあるのん?使いたくて震える
587 名前:デフォルトの名無しさん (ワッチョイ 1f7f-RJLO) mailto:sage [2017/03/06(月) 02:42:26.15 ID:sc7bChPJ0.net] ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0352r0.pdf の方に書いてあったのね……スミマセソ
588 名前:デフォルトの名無しさん (スップ Sd3f-cA0b) [2017/03/06(月) 17:42:12.10 ID:/kAc8Ta7d.net] std::mt19937 r(?); std::uniform_int_distribution<> d(0, 100); for(int i=0;i<100;++i){ d(r); } としないと正しく分布しないですか? std::mt19937 r(?); for(int i=0;i<100;++i){ std::uniform_int_distribution<> d(0, 100); d(r); } これでは駄目ですか?