!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part164
https://mevius.5ch.net/test/read.cgi/tech/1683600652/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C++相談室 part165
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ efda-9b8G)
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO02デフォルトの名無しさん (ワッチョイ 194e-FUJr)
2023/10/31(火) 08:59:52.78ID:DBRUqQAF0 >1 乙です
前スレ 例外はループ脱出に使うような物じゃない、との意見に賛成です。
自分は、例外は「起こり得るけどいちいちエラー処理を書いたらアホな話を」「処理呼び出し毎ではないレベルで」「エラー対処コーディングするもの」と思ってます。
具体例は、
リンクリストなどコレクション操作でメモリ不足が起きた場合、のエラー処理。
コレクションの追加や削除を頻繁に行うコードって、大体はもっと概念レベルが高い事をやってるので、1件の追加 レベルでエラー処理書いてたらアホな感じになる。
しかも、GUI プロセスを作ってて何か上手く動かないから特定のエラーだけを画面に表示したい、など、ことさら明確に対処したい場合です。プロセスが落ちればいいだけなら、main()の外側、の仕様がやってくれる。
古い本の情報だけど、SBリップマンによると、MS VC++と、sun、hp-ux の C++コンパイラで、例外を使う/使わないで速度性能調査したそうで、 4~6% の速度劣化があったとの事です。
前スレ 例外はループ脱出に使うような物じゃない、との意見に賛成です。
自分は、例外は「起こり得るけどいちいちエラー処理を書いたらアホな話を」「処理呼び出し毎ではないレベルで」「エラー対処コーディングするもの」と思ってます。
具体例は、
リンクリストなどコレクション操作でメモリ不足が起きた場合、のエラー処理。
コレクションの追加や削除を頻繁に行うコードって、大体はもっと概念レベルが高い事をやってるので、1件の追加 レベルでエラー処理書いてたらアホな感じになる。
しかも、GUI プロセスを作ってて何か上手く動かないから特定のエラーだけを画面に表示したい、など、ことさら明確に対処したい場合です。プロセスが落ちればいいだけなら、main()の外側、の仕様がやってくれる。
古い本の情報だけど、SBリップマンによると、MS VC++と、sun、hp-ux の C++コンパイラで、例外を使う/使わないで速度性能調査したそうで、 4~6% の速度劣化があったとの事です。
3デフォルトの名無しさん (ワッチョイ 6105-NMSe)
2023/10/31(火) 09:37:52.87ID:BnGGo/620 スレ終了間際に現れる質問いいですかオジなんなの?w.
4デフォルトの名無しさん (スププ Sd33-wFsA)
2023/10/31(火) 09:38:43.79ID:yneNhI3/d Pythonで言うと
forのStopIterationは へっ? だし
int()のValueErrorですら微妙
forのStopIterationは へっ? だし
int()のValueErrorですら微妙
5デフォルトの名無しさん (ワッチョイ 5397-ggTH)
2023/10/31(火) 11:32:52.74ID:5ddE/sJo0 うるせえstd::stoi()ぶつけんぞ
6デフォルトの名無しさん (アウアウウー Sad5-U1R4)
2023/10/31(火) 16:49:04.12ID:Xd7Dooyma >>3
ヘッダーの最後の行の #endif みたいなものだよ
ヘッダーの最後の行の #endif みたいなものだよ
7デフォルトの名無しさん (ワッチョイ 6105-NMSe)
2023/10/31(火) 23:53:09.44ID:BnGGo/620 >>6
と、言うことは対になる#ifがどこかに?
と、言うことは対になる#ifがどこかに?
8デフォルトの名無しさん (ワッチョイ 1945-FUJr)
2023/11/01(水) 10:50:51.42ID:NLQyML8a0 …(いくら5chとは言え、複数の人が集まる場所で、何かを教えて頂いてもお礼も言えず、面白い返しもできない人がいたとして。その人がプログラムに関してだけは素晴らしいコードを書ける、なんてことはあるのかな?と思う瞬間が人生の中であったり、なかったり)
9デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/11/01(水) 12:51:50.53ID:h0xHi7n60 (礼儀とプログラミングスキルは関係ないと思う)
10デフォルトの名無しさん (ワッチョイ 13ad-feYx)
2023/11/01(水) 12:53:02.45ID:c3s+uM8y0 (俺の昼飯どこ行った?)
11デフォルトの名無しさん (アウアウウー Sad5-U1R4)
2023/11/01(水) 16:02:16.42ID:G1jsC9Xya (今日の昼飯はセブンのサバ塩焼弁当にしとくか・・・)
12デフォルトの名無しさん (ワッチョイ 1939-PupP)
2023/11/01(水) 18:24:49.00ID:m9AntJVX0 コードにはある程度そいつの人間性は反映されるな
スレチな話題ではあるけど
スレチな話題ではあるけど
13デフォルトの名無しさん (ワッチョイ b1f8-XCYI)
2023/11/01(水) 23:07:31.46ID:PfaqlzcX0 (本物のプログラマはPascalを使わない)
14デフォルトの名無しさん (ワッチョイ 6105-NMSe)
2023/11/01(水) 23:30:59.94ID:ZqfN6pKA0 (でもPythonは使ってもいいのかな?って時々思う)
15デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/11/02(木) 00:03:32.45ID:aqkFofyNM そろそろキャストは止めてスマポ使いましょう
16デフォルトの名無しさん (ワッチョイ d94e-vgKx)
2023/11/02(木) 02:43:15.24ID:+4XO/JeH0 まちゅまちゅの3Dライブみた
前も思ったけどみこちとかなたそのダンス、めっちゃシンクロ率高い
リズムがぴったり一緒なんだよね
ダンスほんとにうまくなったよな
前も思ったけどみこちとかなたそのダンス、めっちゃシンクロ率高い
リズムがぴったり一緒なんだよね
ダンスほんとにうまくなったよな
17デフォルトの名無しさん (ワッチョイ d94e-vgKx)
2023/11/02(木) 02:43:45.89ID:+4XO/JeH0 誤爆った(´・ω・`)
18デフォルトの名無しさん (ワッチョイ 1bda-9b8G)
2023/11/02(木) 07:17:03.35ID:Hn8AmdCQ0 ホロライブか
19デフォルトの名無しさん (アウアウウー Sad5-U1R4)
2023/11/02(木) 10:44:27.02ID:BqsrFUCWa (まちゅまちゅの3Dライブ?・・・ちょっと気になる)
20デフォルトの名無しさん (ワッチョイ 6105-NMSe)
2023/11/02(木) 23:48:48.29ID:ebj85xCu0 (((お前ら括弧ばっかり使ってlisperかよ?)))
21デフォルトの名無しさん (ワッチョイ a905-fLgT)
2023/11/03(金) 10:21:23.72ID:sUQ44pbr0 ←vーー( ゚∀゚)!ー^ー
22デフォルトの名無しさん (ワッチョイ 6276-0SSA)
2023/11/04(土) 18:56:36.20ID:Y/q1DSa/0 コピーとムーブの挙動、というか管理難しい。。難しくない?
23はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0979-oDOv)
2023/11/04(土) 20:24:08.34ID:1CTu6tq50 コピーやムーブはパターンに沿って管理できるからそんなに難しいとは感じないな。
ワイとしては参照の畳み込み (Reference collapsing) や変換の規則を毎回のように確認するんだけど全然頭に入ってこない。
参照はオブジェクトではないので逆に言えば値に対応する型が参照になることはないのだが、それはそれとして参照を含む型があり得るというのが今でも腑に落ちない。
ワイとしては参照の畳み込み (Reference collapsing) や変換の規則を毎回のように確認するんだけど全然頭に入ってこない。
参照はオブジェクトではないので逆に言えば値に対応する型が参照になることはないのだが、それはそれとして参照を含む型があり得るというのが今でも腑に落ちない。
24デフォルトの名無しさん (ワントンキン MM92-JcAe)
2023/11/04(土) 20:28:09.97ID:KOZ2F//lM 参照しか知らんものだけど、ムーブて何か簡単に教えて
参照は実装上ただのポインタじゃん
ムーブはなにがどうなるん?
参照は実装上ただのポインタじゃん
ムーブはなにがどうなるん?
25はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0979-oDOv)
2023/11/04(土) 20:29:19.85ID:1CTu6tq50 ムーブコンストラクタが起動する。
それだけ。
それだけ。
26デフォルトの名無しさん (ワッチョイ 658d-qcxi)
2023/11/05(日) 09:49:50.04ID:6vgG9vCb0 >>24
考え方としては、shallow copyを二重開放リスクを避けて行うための仕組み。
右辺値という特別な一時変数のコピーで特別なコピー(ムーブコンストラクタ)を実行するようにして、クラス設計者が必要に応じてshallow copyを実装しやすくしている。
考え方としては、shallow copyを二重開放リスクを避けて行うための仕組み。
右辺値という特別な一時変数のコピーで特別なコピー(ムーブコンストラクタ)を実行するようにして、クラス設計者が必要に応じてshallow copyを実装しやすくしている。
27デフォルトの名無しさん (アウアウウー Saa5-CWlg)
2023/11/05(日) 10:41:04.16ID:ol9bMVcca >>24
moveはRustで言う所有権の移動じゃないか
moveはRustで言う所有権の移動じゃないか
28デフォルトの名無しさん (ワッチョイ 454e-0SSA)
2023/11/05(日) 13:06:56.97ID:Qkn7cpbH0 >>24
aに戻り値などの一時オブジェクトbをコピーすると通常は
aでメモリを確保
bからメモリコピー
bのデストラクタでメモリを破棄
という動作になるけど、moveの場合
aにbでメモリをポインタで持ってくる
bのインスタンスでは破棄したことにする
とすれば無駄なメモリ確保とコピーが発生せず効率が良い
aに戻り値などの一時オブジェクトbをコピーすると通常は
aでメモリを確保
bからメモリコピー
bのデストラクタでメモリを破棄
という動作になるけど、moveの場合
aにbでメモリをポインタで持ってくる
bのインスタンスでは破棄したことにする
とすれば無駄なメモリ確保とコピーが発生せず効率が良い
29はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 823e-9NWm)
2023/11/05(日) 13:39:42.02ID:pHGS9osC0 標準ライブラリでのムーブは所有権 (ownership) の概念を前提として構築されているし、
慣例としてもそのようにするものではあるんだが
言語としてはムーブコンストラクタ (またはムーブ代入演算子) を呼び出すというだけで
所有権の面倒をみる機能は何もない。
(辻褄が合うようにするのはプログラマの責任。)
何が起きているのかは所有権の概念と実装レベルで分けて考えたほうがいいと思う。
どう説明していいかわからんから関連する要素を箇条書きにしたらこんな感じかな。
・ それがコピーの文脈であるかムーブの文脈であるか区別は出来る
・ 一般的にムーブの文脈であった場合 (寿命が尽きる直前の一時オブジェクトの再利用が出来る場合) にコピーより効率が良い動作が出来る可能性がある
・ どのように効率がよくなるのかはそのクラス (のムーブコンストラクタやムーブ代入演算子) の定義次第
・ 典型的なムーブの実装はリソース本体を指すポインタの交換によって実現される
・ ユーザーが定義を与えなかった場合のデフォルトのムーブは全てのサブオブジェクトをムーブすることになっている
慣例としてもそのようにするものではあるんだが
言語としてはムーブコンストラクタ (またはムーブ代入演算子) を呼び出すというだけで
所有権の面倒をみる機能は何もない。
(辻褄が合うようにするのはプログラマの責任。)
何が起きているのかは所有権の概念と実装レベルで分けて考えたほうがいいと思う。
どう説明していいかわからんから関連する要素を箇条書きにしたらこんな感じかな。
・ それがコピーの文脈であるかムーブの文脈であるか区別は出来る
・ 一般的にムーブの文脈であった場合 (寿命が尽きる直前の一時オブジェクトの再利用が出来る場合) にコピーより効率が良い動作が出来る可能性がある
・ どのように効率がよくなるのかはそのクラス (のムーブコンストラクタやムーブ代入演算子) の定義次第
・ 典型的なムーブの実装はリソース本体を指すポインタの交換によって実現される
・ ユーザーが定義を与えなかった場合のデフォルトのムーブは全てのサブオブジェクトをムーブすることになっている
30デフォルトの名無しさん (ワッチョイ 454e-0SSA)
2023/11/05(日) 13:42:20.39ID:Qkn7cpbH0 で、このmove動作を定義するために、
一時オブジェクト(右辺値)に対する参照動作を関数定義できるようになっている
一時オブジェクト(右辺値)に対する参照動作を関数定義できるようになっている
31デフォルトの名無しさん (ワントンキン MM92-JcAe)
2023/11/05(日) 14:05:22.83ID:wAmDr/fyM ムーブされるとそのポインタは変わってしまうと思うけど、そういうケースはないの?
32デフォルトの名無しさん (ワッチョイ 454e-0SSA)
2023/11/05(日) 14:18:09.07ID:Qkn7cpbH0 言っている意味がよく分からないが、純粋なポインタにはムーブという概念はないよ
ムーブを定義できるのはクラスに対してだけ
他の人も言っているようにムーブといっても実体は単なる関数呼び出しなので、その中でプログラマが自分の責任で必要なコードを書くことになる
ムーブを定義できるのはクラスに対してだけ
他の人も言っているようにムーブといっても実体は単なる関数呼び出しなので、その中でプログラマが自分の責任で必要なコードを書くことになる
33デフォルトの名無しさん (ワッチョイ 653d-2MVi)
2023/11/05(日) 14:58:05.35ID:vIwIC4VV0 質問した人じゃないけど説明ありがたいです
ムーブ難しいと思ってたけどもっと早く勉強して仕事で使うべきだった
(文法解析した要素をポインタいじって並べ変えるんだけど…
二重所有を防ぐのを手作業コーディングで責任を持たなければならないプログラムを作ってしまった)
ムーブ難しいと思ってたけどもっと早く勉強して仕事で使うべきだった
(文法解析した要素をポインタいじって並べ変えるんだけど…
二重所有を防ぐのを手作業コーディングで責任を持たなければならないプログラムを作ってしまった)
34デフォルトの名無しさん (ワッチョイ 454e-0SSA)
2023/11/05(日) 15:15:28.75ID:Qkn7cpbH0 ただ、右辺値参照を使うと、通常の参照や代入と使い分けるためにconstやnoexceptを厳密に指定しないといけなくなりがちだから、
その辺の総合的な理解が必要になってくるのは注意点だね
constは一度付け始めるとライブラリ全部に伝染するからな・・・それを嫌って使わない派も結構いる(いた)よね
その辺の総合的な理解が必要になってくるのは注意点だね
constは一度付け始めるとライブラリ全部に伝染するからな・・・それを嫌って使わない派も結構いる(いた)よね
35デフォルトの名無しさん (ワッチョイ ed7c-9LC0)
2023/11/05(日) 15:39:17.77ID:Vx5ySS520 実際のコードだとポインタのムーブはunique_ptrとかにぶん投げで、自分で移動コード書くことはまずないな
自分でムーブ特殊関数の中身書くのはハンドル的なもののムーブを実現したいときくらい
自分でムーブ特殊関数の中身書くのはハンドル的なもののムーブを実現したいときくらい
36デフォルトの名無しさん (アウアウウー Saa5-3l7D)
2023/11/05(日) 16:12:35.07ID:jiV3XvQ2a とにかく unique_ptr が便利すぎるから何でもかんでも全部 unique_ptr 使うようになってしまった
まあそれでいいのかもしれないが
まあそれでいいのかもしれないが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
