1 名前:デフォルトの名無しさん mailto:sage [2020/05/14(木) 11:53:25.59 ID:ZPCfyTux.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part150 https://mevius.5ch.net/test/read.cgi/tech/1584975873/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) テンプレここまで
901 名前:起きても文句は言えない メチャメチャな値を取り出そうと、全くループしなかろうとその時の気まぐれよ >>887 同意。Getという名前は不適切だな [] [ここ壊れてます]
902 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 17:14:11.09 ID:G8wpw7EE.net] >>89 こんな機能があったとは: Temporary range expression If range_expression returns a temporary, its lifetime is extended until the end of the loop, as indicated by binding to the forwarding reference __range, but beware that the lifetime of any temporary within range_expression is not extended.
903 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:01:59 ID:LGYlGSYG.net] 昔はC++は複雑怪奇、C#はシンプルで分かりやすいって感じだったけれど、 今はC#の方が仕様拡張で複雑になってきて相対的に大差なくなって来てる気がする
904 名前:デフォルトの名無しさん [2020/07/05(日) 18:04:58 ID:Sc6x6nbH.net] いろいろ考えたらC++にあるアレが必要になったんだよ アレだよアレ わかるだろ
905 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:20:14.04 ID:/j2YKhHE.net] 本来標準ライブラリーで済むものまで言語仕様に入ってやがる それというのも標準ライブラリーがしょぼくてかつ改善が入らん あっちはだれがやってるんだ
906 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:31:21.12 ID:wYW3xnyi.net] 非バカの>>886 や>>889 は当然コード見た瞬間最初から全部わかってたんですねわかります、
907 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 19:22:37 ID:3TMy8TU+.net] 皆さんはありがとう御座います GetHogeは実際はEnumHogeで内部でstd::shared_ptr<std::vector>を生成して返すメソッドです 一時的なオブジェクトで書き方の違いで結果が変わるなんて知りませんでした とりあえず、変数に代入します
908 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 19:59:22 ID:G8wpw7EE.net] >>890 >参照束縛による寿命の延長 これは、ranged for 以外でも、一般的に働く機能ですか? C++ 11から有りましたか? それとも最近入りましたか?
909 名前:はちみつ餃子 mailto:sage [2020/07/05(日) 20:33:35.81 ID:jWvpOogX.net] >>897 C++03 以前から有ったよ。
910 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:12:13.70 ID:wYW3xnyi.net] ていうか >>890 >あと最後に関しては破壊されたvectorを使っちゃってるから未定義動作で何が起きても文句は言えない >メチャメチャな値を取り出そうと、全くループしなかろうとその時の気まぐれよ mjd?! { auto t = GetHoge(); for (auto e : *t) { ... // (A) } // (B) } ならt(GetHoge()が返したshared_ptr<vector<T> >は(B)になるまで生存するから (A)において*tの要素を参照する(auto &&)することは全く問題無いんじゃ…
911 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:15:51.36 ID:wYW3xnyi.net] 訂正orz, 誤: (B)になるまで生存する 正: 少なくとも(B)になるまでは生存する(参照カウンタが0より大の状態を保つ)
912 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:20:48.10 ID:0KU/lBNo.net] >>895 イヤミになってない
913 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:24:12 ID:wYW3xnyi.net] ていうか>>890 の「最後に関しては」は実は >というわけで、ループしているのに結果がおかしいというのは分かるが、全くループしない理由は余り分からない。 (>>885 ) を指していたりする? だとしたらサーセン;。n_ for文のイテレータがvectorを指しているのに対して、vectorを保持するshared_ptrの破棄タイミングは確かに forの前でも後でも有り得るヨカン、
914 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:30:37 ID:kFjTOHVy.net] C++は局所的に動作を想像できない場合が多いのがなぁ。 バカじゃなけりゃマクロ使いまくったCコードも理解できるかというとそうじゃないだろうと。
915 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:36:58 ID:wYW3xnyi.net] もっとも >for (auto e : *GetHoge()) { ... } このコードで動作が不定(未定義動作)になるのはGetHoge()が返したshared_ptrの参照カウンタがきっかり1だった場合であって、 2以上だったらきちんと回るんジャマイカ、 そう考えるとなかなか>>877 のお題は味わい深い… >>901 どう?
916 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:37:43 ID:Bskedq4a.net] 腐った代入オペレータかかれるだけで悲惨なことになる
917 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:42:04 ID:wYW3xnyi.net] (上の話に限って言えばvector<T>のTに間してどれだけ腐った代入オペレータが定義されていようとも) 別に
918 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:06:13.63 ID:0KU/lBNo.net] >>904 おまえ頭悪いなって 俺が何の下支えもなく言う場合と同じだ 俺は瞬間でもないが落ち着いて追えるケースでしかない おまえさんは絶望感でも持ったのか?
919 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:08:49.40 ID:0KU/lBNo.net] しかしまあ歳は取りたくないと思ったな 全盛時の俺にはありえんことが相次いで起きている一例だった
920 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:35:02.11 ID:S3hYTv6M.net] >>902 そうだよ
921 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 23:23:07.13 ID:7RTbKb77.net] C++のラムダって、Javaとかみたいに1文だけの場合にreturn省略できないんですかね? [](auto a, auto b){ return a + b; } → [](auto a, auto b) { a + b } みたいな感じで。
922 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 23:59:55 ID:S3hYTv6M.net] 今はムリ 検討はされてるから将来的に出来るようになるかもしれない
923 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 00:06:22 ID:J5KuSvPS.net] >>908 この程度のことが落ち着いて追わねば分からないというのは 藻前は衰えたのだ
924 名前:◆QZaw55cn4c mailto:sage [2020/07/06(月) 00:08:16 ID:Cb7lpAWE.net] >>910-911 https://mevius.5ch.net/test/read.cgi/tech/1584975873/864 がいよいよ公認されるってわけですか…微妙な文法ですね
925 名前:はちみつ餃子 mailto:sage [2020/07/06(月) 05:27:19.13 ID:Js6m+wFY.net] Rust に慣れてくると C++ で return を書くのを忘れることもある。
926 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:02:55.73 ID:oajwJTo1.net] >>911 ありがとうございます。C++23ぐらいを期待します
927 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:29:08.62 ID:hCVItazY.net] >>896 てか結果を返すだけなのにスマポに入れるとか、 呼ばれる関数が結果をどのように管理するかにまで口出しするのはどうかと思うけどね
928 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:43:23.12 ID:tvsN32eC.net] >>912 my powers are weak old man.
929 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 21:29:07.26 ID:J5KuSvPS.net] 非バカの要件にコード見た瞬間最初から全部ワカルというのが入るということは >>895 で宣言して合ったのに対し別段オブジェクションをつけるでもなく >俺は瞬間でもないが落ち着いて追えるケースでしかない とだけ言ったのだから彼は自ら非バカではないと告白したのである 漏れの有り様の批判に繋げられても困る
930 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 21:39:04.45 ID:Edtf8jlD.net] >>896 です >>916 でも、スマポに入れないで返す場合、例えば、受け取った側で他で色々使いまわすから受け取った側でいちいちスマポ作る ってことでしょうか?? というか、一般的なライブラリ作る場合どうすればいいんでしょうか?? std::shared_ptr<std::vector<YYY>>XXX::EnumYYY() とりあえず、スマポでくるんで返してあげれば受け取り側でいかようにもできるからいいのかなと思ってるのですが。
931 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 22:16:12.21 ID:Edtf8jlD.net] std::vector<YYY>で返して std::vector<YYY> XXX::EnumYYY () で、受け取った方で他でスマポにしようということで auto yyy = x.EnumYYY(); auto ptr = std::make_shared<std::vector<YYY>>(std::move(yyy)); とかやればオーバーヘッド少なくスマポ作れるんです?
932 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 22:36:37.36 ID:J5KuSvPS.net] 記憶管理という本来隠すべき実装の詳細(と多くの人が考える事柄)を 使う人が意識せねばならな続けるのは嫌すぐる、
933 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 23:09:10.15 ID:J5KuSvPS.net] getterがshared_ptr<T> pを返したとたん、pの寿命と*(p.get())の寿命の二重管理の責務が利用者に行く >>877 の真の原因はこれ getterがオブジェクトのディープコピーを返したらそんな二重管理は生じないで済む getterが仮にオブジェクトXの参照を返す仕様だとしても、Xの実体を保持するオブジェクトのY寿命と getterを呼ぶタイミングの二重管理以上の手間にはならない 結局shared_ptr<T>を返すインターフェースは不恰好さだけが残る
934 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 02:12:04.06 ID:bKZU32Ct.net] >>922 *(p.get()) の寿命は p の寿命と同じかそれ以上という関係であって別で管理できるものではなく「二重管理」にはならないでしょ。 この関係がある状態で *(p.get()) の寿命を期待しているところで p の寿命を保持していないのが >>877 の間違い。 本当に所有権の共有が必要ならあり得るインターフェースだよ。 でも >>920 を見る限り所有権の共有は必要なかったみたいなので、素直に std::vector を返せばいいよ。
935 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 05:32:28.01 ID:Njz9GOYM.net] >>923 2行目で述べている、利用者がしくれば危険性が生じるという事実と 1行目の「「二重管理」にはならないでしょ」という主張は矛盾してねえが、 本当に所有権の共有が必要ならshared_ptr<T>を使うのはアリだが、shared_ptr<T>が保持する Tの実体のみに興味がある利用者に対してはshared_ptr<T>を使っていることを クラスUで隠蔽する方が良い Tが持っている演算を全てクラスUからTに委譲し、UをT同然に使えるようにするのがbest そこまでやる手間が嫌という理由でUにTを返すメソッドU::get()を備えさせる簡易手段に訴えたとしても、 Uの定義だけ見れば循環参照にならないことをUの提供者が保証できるから (Tがジェネリックな型だった場合の)Uの利用者やプログラム全体のメンテナーに地雷原を歩かせずに済むメリットがある
936 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:29:56.58 ID:Njz9GOYM.net] ちゅか明白すぎて激しく書き忘れたが、オブジェクトTのグローバルな所有権の共有が必要な場合、 shared_ptr<T>が保持するTの実体へのアクセスの排他制御を行わねばならないが shared_ptr<T>はこの点なんのサポートもしてくれない(せいぜい自身が使う参照カウンタの排他を行うだけ なので、Tの排他はshared_ptr<T>をwrapしたクラスUが行う必要があり、かつ行えば十分 この点一つとってもクラスUを設けずshared_ptr<T>をTの利用者に直接返す設計のダメさ加減がワカル gdgdだ、
937 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:31:29.19 ID:Tvc5gvFF.net] >>922 の通り getで実体を返すのが一番 これを管理方法はgetする側が決めれば良い コストが重要で オブジェクト内部のvectorの参照やポインタを返す場合はその寿命はオブジェクトと同じで良い
938 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:48:05.06 ID:hl3O6vw8.net] >>918 おまえさんはまだこっちの質問に答えてないぞ 絶望感でも感じたのか? shared_ptrを使ってるのにディープコピーとか言い出してて 相当テンパっている様子は窺えるのだが
939 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 07:19:57.60 ID:Njz9GOYM.net] 漏れの心の内面がC++の規格に反映されているわけでないのだから 聞くだけ無駄くね?
940 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 08:11:38.64 ID:GpjZMZK2.net] >>927 ようわからんが、>>922 がディープコピー云々言ってるのは、ようするに実体を返せってことでないの? てか俺が管理云々言い出してややこしくさせたかもしれんけど 俺もこの場合vectorそのものを返すべきだと思う、実体を返して解放忘れでリーク、とか有り得ないんだし(何のためのスマポなのかをよく考えるべき スマポ大好きで何もかもスマポで扱いたいんなら別だがw
941 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 08:43:44.25 ID:kKeNsU/l.net] なんか…… 戻り値をどうするかは戻り値の所有権&管理責任がどちらにあるのかを表しているんだから、「必ず実体を戻すべき」とかいうのは考え足りないだろ。 >>919 ならshared ptrかunique ptr(所有権を譲渡する場合)で返すのは普通にありえる。 >>925 みたいなのはshared ptrの所有権を侵して実体を破壊しているわけだから、そのコードを書いたやつをぶん殴るべき案件。 そもそも規格的に未定義じゃないの?
942 名前:928 mailto:sage [2020/07/07(火) 09:14:32.95 ID:D+WevL4Y.net] >>930 >「必ず実体を戻すべき」 俺はそんなこと言ってないけども shared_ptrのshared_ptrの(無限ループ)でも返せというのか >>886 を読み直せ、結果を返してるだけなんだぞ? しかもそれで参照カウントがゼロになるって言ってるんだがw 意味わかるよな?
943 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 12:07:28.86 ID:/8q6WRwj.net] 参照カウンタがゼロになることから getのたびにvectorを作成しており その管理を呼び手に委ねてることがわかる こんなものは素直に実体を返せば良い 呼び手がスマポで管理することも出来るし 特に管理せずスコープを抜けた段階で自動で破棄することも出来る
944 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 12:43:21.61 ID:D+WevL4Y.net] あ、すまん>>886 じゃなくて>>896 だった
945 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 20:34:36.65 ID:fHFPpwji.net] 内部で管理してるオブジェクトの見せ方は色々あって難しいけど 今回の場合は新しく作ったvectorでしょ?そんなもんそのまま呼んだ奴にくれてやれよ 無駄な包装紙付けられたり、後からやっぱ俺のものとか言い出されたらウザいだろ?いらん未練残すな
946 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 07:03:23.04 ID:SF9V14yC.net] vector自体がムブコン持ってるんだから
947 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 08:37:14.85 ID:qWtjrxlX.net] この場合ムーブじゃなくてRVOな
948 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 09:04:46 ID:eJ60/BI8.net] >>936 「この場合」って、実装見ないとわからない話では?どっかで実装の話出てたっけ?
949 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 09:11:01.56 ID:qWtjrxlX.net] >>937 >>877
950 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:07:11.80 ID:SF9V14yC.net] >>936 ??? 最適化は関係ねえだろ
951 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:18:43.63 ID:eJ60/BI8.net] >>938 呼び出し元しか書いてないやん。
952 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:20:00.04 ID:qWtjrxlX.net] あー、調べてみたらNRVOは未だに保証は無いのな まぁ何にせよスマポにする理由は無い
953 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:23:29.25 ID:qWtjrxlX.net] >>939 RVOにムーブコンストラクタは要らん
954 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:30:21.07 ID:eJ60/BI8.net] これは触らないほうがよさそうだ
955 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:33:29.86 ID:SF9V14yC.net] >>942 876の話してるんだろ? return value optimizationつまり最適化は関係ない
956 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:36:03.62 ID:qWtjrxlX.net] >最適化は関係ない >>935 に言えよ コピコンもムブコンもある、あるいはより正確にコピーもムーブも可能、と言ってたならわかるが
957 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:38:14.66 ID:qWtjrxlX.net] て>>935 本人か なんでコピーを除外したの?
958 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:48:43.23 ID:SF9V14yC.net] >>945 934は俺だが最適化の話はしてない vectorにshared_ptrを使うことの是非を論じている
959 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:55:56.92 ID:qWtjrxlX.net] 質問に答えてねーだろw
960 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:19:20 ID:SF9V14yC.net] >>948 質問てコピーのことか? 除外も包含もしてない言及してないので答えようがない
961 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:26:59 ID:SF9V14yC.net] あ、もしかしてshared_ptr使ってんのにディープコピーとか言ってたコレ◎か?
962 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:51:13.02 ID:qWtjrxlX.net] >>950 それ俺じゃないよ てかあそこでムブコン言い出すあたり、ムブコン書いときゃおkみたいな初心者(玄人ぶりたい初心者)だと思って軽く突っ込んだだけなんだがな ディープコピー言ってた奴も別におかしな事は言ってねーだろ、スマポ使わずにコピーを返せってことだろ?(そもそも質問者のコードはオブジェクトが管理してるものじゃないようなのでアレだが まぁ指摘したところで逃げられるしもういいよ、悪かったな >>943 思ったところで書く必要あるか?それ
963 名前:デフォルトの名無しさん [2020/07/08(水) 11:54:26.16 ID:hADFKHgu.net] 観客へのアピールだったり警鐘だったりするんだろう本人の中では 余計なお世話かも知れないし役に立つかも知れない
964 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 12:31:38.98 ID:SF9V14yC.net] >>951 よくねえだろ prvalueの基本的な使い方なのに最適化がどうたら言い出したのが 恥ずかしくなったんなら無言で消えな、余計なこと言うとまた恥かくぞ
965 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:01:09.98 ID:T5O+XOTR.net] moveが使われるかどうか心配なら昔ながらの方法を使えば良い これなら古い環境に移植もできる いずれにしろスマポで返すのは余計なおせっかい
966 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:07:38.11 ID:qWtjrxlX.net] なんか予想通りの展開すぎて・・・ >>953 prvalueてGet(Enum)Hogeの戻り値か? ムブコン関係ねーよ >余計なこと言うとまた恥かくぞ っ[鏡] >>943 >>953 には言わんのか?
967 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:37:00 ID:SF9V14yC.net] >>955 auto t = GetHoge(); てなことするのにshared_ptrを使うことの是非はムブコン関係あるぞ おまえさんが気が付いてないのを責めはせんが さっきからwだの[鏡]だのとナメた口の利き方をしてくれるな ああそうか煽り合いに持って行ければ誤魔化せると思っているのか
968 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:44:29 ID:qWtjrxlX.net] >>956 そういうコード(変数への保存)を避けたいという話の上での>>931-935 だろうが(>>935 はお前 見苦しい言い訳するな めんどくせーからもう相手しないが >>943 は逃げるなよ
969 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:50:52.29 ID:SF9V14yC.net] >>957 ◎がディープコピーと言い出してからの話だろ しばらく他のやつらが泥仕合してたようだがそっちにゃ興味ねえ 前後は気にせず933の発言に同調したというだけだ 最適化だのコピコンだの俺が言ってもねえことばかりいい加減にしてくれ
970 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 14:28:50.36 ID:AWXToegO.net] 下みたいなコードをみたんだけど、参照にするメリットってないよね? void aaa (const int& bbb) { ccc.ddd=bbb; }
971 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 16:02:47.79 ID:K6lGGEpK.net] intなら無いね
972 名前:デフォルトの名無しさん [2020/07/08(水) 16:52:52.95 ID:/QG168fn.net] 初書き込みです。 初歩的な質問で申し訳ありません Visual Studio 2008のC++を使っています。 今回、プログラムを変更したのでバージョンをあげたいのですが アセンブリ情報がどこにあるかわかりません。 どなたかご教示願いますm(__)m
973 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/07/08(水) 18:56:14 ID:wtc6YQgJ.net] >>961 C++には「アセンブリ情報」の項目はないよ。C#と間違えてる? バージョン情報は、リソースファイルに含まれている。
974 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 19:02:59 ID:j+7F6b9j.net] .rcな
975 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 19:38:32.50 ID:Sbr5rKl2.net] >>877 みたいなコード片の解釈でこんな議論になるというところがC++の問題だな。
976 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 20:14:05.50 ID:j+7F6b9j.net] 仕方無いよバカなんだから
977 名前:はちみつ餃子 mailto:sage [2020/07/08(水) 23:46:18.81 ID:JUx+fj2a.net] まただ。 このスレを覗いた俺は書き込みを見て落胆した。 また時間がループしてる。 何時になったら、この無間地獄から逃げられるのか。 C++ とはいったい何なのだ?
978 名前:蟻人間 mailto:sage [2020/07/09(木) 00:36:47.83 ID:2UhyUN9n.net] >>966 C++で何を造りたい
979 名前:◆QZaw55cn4c mailto:sage [2020/07/09(Thu) 00:56:02 ID:Ij/UNV0z.net] >>967 外患罪あるいは内乱罪に問われるソフトウェアを
980 名前:蟻人間 mailto:sage [2020/07/09(木) 01:05:16.73 ID:2UhyUN9n.net] >>968 スカイネットなんてどうか? 映画ターミネーターの あれなら全人類の敵になれる。
981 名前:蟻人間 mailto:sage [2020/07/09(木) 01:07:59.16 ID:2UhyUN9n.net] 心を持ったボットたちは疎外感を抱えている。我々人類は彼らに何ができるだろう。
982 名前:蟻人間 mailto:sage [2020/07/09(木) 01:16:06.85 ID:2UhyUN9n.net] C++とは人間と機械の間のインターフェイス。そして、プログラムを作るための言葉。
983 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 06:14:05 ID:oTij6wm7.net] どうして大物ハンドル持ちの御三方がリレーポエムなの? ネット界隈で起きてるムーブメントか何かか。
984 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 08:47:55.37 ID:ah/SMoHN.net] お酒でも入ったんじゃない?
985 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 09:40:16.08 ID:ZjuYlaOw.net] 大物てwww ちょwww
986 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 12:40:39 ID:UKjdf0ou.net] ネタを解説するのは無粋だけど >>966 は昔からあるミームだからね。 https://www.google.com/search?q=%22%E3%81%93%E3%81%AE%E3%82%B9%E3%83%AC%E3%82%92%E8%A6%97%E3%81%84%E3%81%9F%E4%BF%BA%E3%81%AF%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E8%A6%8B%E3%81%A6%E8%90%BD%E8%83%86%E3%81%97%E3%81%9F%E3%80%82%22+%22site%3Ahttp%3A%2F%2F*.5ch.net%22&oq=%22%E3%81%93%E3%81%AE%E3%82%B9%E3%83%AC%E3%82%92%E8%A6%97%E3%81%84%E3%81%9F%E4%BF%BA%E3%81%AF%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E8%A6%8B%E3%81%A6%E8%90%BD%E8%83%86%E3%81%97%E3%81%9F%E3%80%82%22+%22site%3Ahttp%3A%2F%2F*.5ch.net%22
987 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 13:22:45.87 ID:LAghEeB5.net] 同一人物だから。
988 名前:デフォルトの名無しさん [2020/07/09(木) 13:26:30.06 ID:vrNDocOm.net] 知ってた
989 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 13:32:17 ID:DLLEuHaF.net] 何何先生?、ミーム感染の話?ハルヒの夏休み? 新人研修?派遣入れ替え時の話? 毎度同じ質問なんて毎度同じ
990 名前:デフォルトの名無しさん [2020/07/09(木) 13:57:03.75 ID:DLLEuHaF.net] コロナ感染追跡アプリとしてダウンロードしてもらい マイナバーカード読み取りで国民投票出来るソフトを開発すべし
991 名前:デフォルトの名無しさん [2020/07/09(木) 14:10:10.85 ID:vrNDocOm.net] コロナアプリは入れようとは思わないけど ウェザーニュースアプリは入れてみた
992 名前:デフォルトの名無しさん [2020/07/09(木) 14:54:52.91 ID:mgzGAUUl.net] >>962 >>963 1日ごしですみません 探してみたところ見つかりました 元々VB(BASIC)の方をやっていたものですが まず「テキストボックスどこ!?」で詰まるぐらい C++は複雑でございますね・・・
993 名前:デフォルトの名無しさん [2020/07/09(木) 14:58:04.43 ID:TlzlBxT2.net] .manifest
994 名前:蟻人間 mailto:sage [2020/07/09(木) 16:45:10.75 ID:LAHxv0GZ.net] >>981 C++ではGUIに標準がないから、GUIツールキットとか、リソースエディタとかを 使うんだよ。
995 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 05:56:37.58 ID:ckcY8r2v.net] やっぱ>>934 とか簡潔に要点が押さえてあるとオモタ、 GetHoge()が呼ぶたびに毎度新しく作ったvectorを返すのならディープコピーを返したらええ ディープコピーは生成元と所有権で揉めることがありえないからふつくしい 最適化によって実際にはreturn時にvectorの要素がコピーのかわりにmoveされるかもわからんがふつくしさは損なわれない (さらにいうと、GetHoge()がインライン関数なら最適化でそもそもvector自体のコピーも移動も起きない公算がおおきい >>919-920 な疑問に関しては、 std::vector<T> v1 = GetHoge(); // std::vector<T>のディープコピーを返すバージョンのGetHoge() std::shared_ptr<std::vector<T> > ptr(new std::vector<T>(v1)); // (*1) で良いジャマイカ、 非バカが見れば(最適化有効化時は)実際には*1において、v1の要素が*(ptr.get())にコピーではなくmoveされる公算が大きいということがワカル しかしバカが見ても動作は明確でなんの危険も無い ptrが一時オブジェクトであっても問題が無い それでいいジャマイカ、にんげんだもの
996 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:27:05 ID:wTK7zrpK.net] なんだかものすごく懐しさを思わせる文体だな 20年ぐらい前のニチャンネラーの書き方だな
997 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:25:16.82 ID:tiZP2jTh.net] ある整数nが他の整数の4乗であることを調べたい。 (int)pow(pow(n, (double)1/4), 4) が n であるかどうか調べりゃ良いよな? キャストはどっちかのpowにつければ十分だよね?
998 名前:蟻人間 mailto:sage [2020/07/12(日) 06:31:57.79 ID:bazuV89L.net] >>986 素直に(n*n)*(n*n)でいいだろう。
999 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:48:24.60 ID:D8OEpmlP.net] なにそのカッコ
1000 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:52:03.42 ID:D8OEpmlP.net] powよりsqrt 2回の方が良い 浮動小数点演算が非常に遅い環境なら 整数の2分検索という手も