※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/
テンプレここまで
C++相談室 part154
■ このスレッドは過去ログ倉庫に格納されています
2021/01/08(金) 17:54:00.55ID:0DW9z0rL
2021/01/11(月) 00:43:54.84ID:KM6/Ii6v
posix平行宇宙論
43デフォルトの名無しさん
2021/01/11(月) 00:44:15.09ID:AtO8PUuj それだと…CPUの負荷や調子によって…同時になるって…事だよ…。
44デフォルトの名無しさん
2021/01/11(月) 00:45:46.62ID:AtO8PUuj mutex…危ういな…どうしよう…。運に任せて…諦めるか…。
45デフォルトの名無しさん
2021/01/11(月) 00:54:29.81ID:AtO8PUuj 運任せは辛い…。
46デフォルトの名無しさん
2021/01/11(月) 01:30:50.91ID:AtO8PUuj https://stackoverflow.com/questions/7373202/what-happens-if-two-theads-lock-a-mutex-concurrently
大丈夫だと言っているが…ほんまかいな…と思います…迷信はつきもの。
大丈夫だと言っているが…ほんまかいな…と思います…迷信はつきもの。
2021/01/11(月) 01:37:51.07ID:KM6/Ii6v
テストプログラム作ってさっさと検証しろ無能
2021/01/11(月) 01:59:20.31ID:3nmpeNiQ
>>46
信用できないならソースやアセンブリ読めよ。ここで名無しに答えてもらっても、信用できないんだろ?
信用できないならソースやアセンブリ読めよ。ここで名無しに答えてもらっても、信用できないんだろ?
49デフォルトの名無しさん
2021/01/11(月) 03:08:34.69ID:KSKcxhht MutexはOSに依存するので絶対に大丈夫ということはないですが、数々のトラブルを引き起こし最も懸念されたLinuxが安定してきてるので、現在では実用上問題がないレベルにあると思います。
2021/01/11(月) 03:36:14.65ID:dLrb5ZQk
マルチCPUでバスリクエストが同時に出た場合の制御なんて明確に定義されてんだろうが
OS依存だハード依存だと逃げているから見えない不安に怯えることになるんだよ
OS依存だハード依存だと逃げているから見えない不安に怯えることになるんだよ
51デフォルトの名無しさん
2021/01/11(月) 06:01:13.69ID:vFi9Z+AQ LinuxのMutexって使いにくいよね
俺はWindowsから入ったからMutexって名前付きが当たり前だと思ってたんだけどLinuxのMutexには名前がない
どうやって複数のプロセス間で同じMutexを使うんだよ・・・って悩んだ
共有メモリなんかでMutexのアドレスを受け渡しするらしいんだけどさ
面倒くさくなってLinux版の同期制御はファイルロックにしちゃった。。
俺はWindowsから入ったからMutexって名前付きが当たり前だと思ってたんだけどLinuxのMutexには名前がない
どうやって複数のプロセス間で同じMutexを使うんだよ・・・って悩んだ
共有メモリなんかでMutexのアドレスを受け渡しするらしいんだけどさ
面倒くさくなってLinux版の同期制御はファイルロックにしちゃった。。
52デフォルトの名無しさん
2021/01/11(月) 06:47:08.93ID:KSKcxhht LinuxのファイルロックはNFSで(※私たちにはバグのように見える)仕様通りの動作をするので気を付けたほうが良いですよ。
ユーザーが指定したファイルやディレクトリを不用意に使用すると再現性の無いバグに悩まされます。
ユーザーが指定したファイルやディレクトリを不用意に使用すると再現性の無いバグに悩まされます。
53デフォルトの名無しさん
2021/01/11(月) 06:56:23.61ID:vFi9Z+AQ >>52
アドバイスありがとう
Linuxで共有メモリの使い方もよく分からなくて
共有メモリも書いてる途中で読み取りされたら困るから
「書いたよー」「読み終わったよー」ってプロセス間同期したいんだけどMutex受け渡しの前に同期処理って・・・
それで共有メモリの読み書きをファイルロックで同期してMutexを渡すかなーって考えてるうちに
もうファイルロックだけでいいんじゃないかってなってしまった
一般的にはどうやってやるのがよかったんだろ?
アドバイスありがとう
Linuxで共有メモリの使い方もよく分からなくて
共有メモリも書いてる途中で読み取りされたら困るから
「書いたよー」「読み終わったよー」ってプロセス間同期したいんだけどMutex受け渡しの前に同期処理って・・・
それで共有メモリの読み書きをファイルロックで同期してMutexを渡すかなーって考えてるうちに
もうファイルロックだけでいいんじゃないかってなってしまった
一般的にはどうやってやるのがよかったんだろ?
54デフォルトの名無しさん
2021/01/11(月) 07:35:12.79ID:KSKcxhht2021/01/11(月) 08:06:23.60ID:RSMcM3e3
ちょっとググっただけだけどそんなに難しいかなぁ?
https://www.geekpage.jp/programming/linux-network/book/07/7-41.php
https://www.geekpage.jp/programming/linux-network/book/07/7-41.php
56デフォルトの名無しさん
2021/01/11(月) 08:06:43.86ID:vFi9Z+AQ >>54
ありがとう ちょと安心した
ありがとう ちょと安心した
57デフォルトの名無しさん
2021/01/11(月) 08:16:58.50ID:vFi9Z+AQ >>55
コード見てみましたけどMutexの作成と共有メモリの書き込みが終わってからforkしてますね
forkした親と子ならそれでもいいんでしょうけど
実際は親子ではないプロセス間でMutex使いたくなったりするじゃないですか
Mutexが作成される前や共有メモリへの書き込み完了前にスレーブがMutexを要求しに来ると困ります
コード見てみましたけどMutexの作成と共有メモリの書き込みが終わってからforkしてますね
forkした親と子ならそれでもいいんでしょうけど
実際は親子ではないプロセス間でMutex使いたくなったりするじゃないですか
Mutexが作成される前や共有メモリへの書き込み完了前にスレーブがMutexを要求しに来ると困ります
2021/01/11(月) 08:38:54.12ID:WYfXTDe9
2021/01/11(月) 08:48:31.88ID:3OtB0f6U
mutexじゃなくて名前付きセマフォなら普通にプロセス間で使えなかったっけ?
2021/01/11(月) 09:14:02.58ID:RSMcM3e3
61デフォルトの名無しさん
2021/01/11(月) 09:22:15.64ID:KSKcxhht >>60
Linuxではファイルロックで良いよ。
Linuxではファイルロックで良いよ。
62デフォルトの名無しさん
2021/01/11(月) 09:28:25.14ID:vFi9Z+AQ セマフォのほうには名前付きあったんですね見落としてました
ありがとう!
ありがとう!
63デフォルトの名無しさん
2021/01/11(月) 09:39:24.93ID:vFi9Z+AQ あと別のところでソケットを排他リソースで使うというアイデアを教えてもらったことあります
同じポート番号をバインドできるのは1つだけだからこれを排他に使うという案
同じポート番号をバインドできるのは1つだけだからこれを排他に使うという案
64デフォルトの名無しさん
2021/01/11(月) 09:52:46.06ID:KSKcxhht 3年ぶりの建設的なスレだな。
2021/01/11(月) 10:09:50.89ID:RSMcM3e3
>>61
ファイルロックはロックしたままプロセス死ぬとリブートしても解消できないのがね
ファイルロックはロックしたままプロセス死ぬとリブートしても解消できないのがね
2021/01/11(月) 10:39:47.37ID:sBoV/AFh
67デフォルトの名無しさん
2021/01/11(月) 11:25:14.07ID:vFi9Z+AQ >>65
それはファイルロック(flock関数)ではなく、単純にファイルの存在チェックをしているだけじゃないですか?
flockを使ったファイルロックならプロセス異常終了時にOSによってロックが解放されます
それはファイルロック(flock関数)ではなく、単純にファイルの存在チェックをしているだけじゃないですか?
flockを使ったファイルロックならプロセス異常終了時にOSによってロックが解放されます
68デフォルトの名無しさん
2021/01/11(月) 12:46:20.78ID:vpEQZDgx ミックスジュースよりセックスジュースが好きですね
2021/01/11(月) 14:25:33.73ID:EL34sMb+
唐突に何いいだすねん君は!
(‘д‘⊂彡☆))Д´)パーン <ミックスジュースよりセックスジュースが好きですね
(‘д‘⊂彡☆))Д´)パーン <ミックスジュースよりセックスジュースが好きですね
2021/01/11(月) 14:41:16.25ID:dLrb5ZQk
ラブジュースだろ
71デフォルトの名無しさん
2021/01/11(月) 16:14:45.22ID:AtO8PUuj 39です…。
mutexの信頼性をずーと疑ってたら…POSIXスレッド…pthread_mutex_lockに行き着きました…
ブロックもするそうです…ソース見てたら…カーネルの様です…pthread_mutex_lock_fullであれば…atomic_compare_and_exchange_val_acq…などもあります…テストアンドセットです…
アトミック操作です…しかし…普通にmutexを実装してpthread_mutex_lock_fullが呼ばれるかは…
分かりません…どんなmutexライブラリも最終的に…このカーネルを呼んでるだけだと思います…
呼ばれてるのは…fullではなく…弱い方のpthread_mutex_lockだと仮定しても…カーネルを疑うなんて…
本当に…ナンセンスな話なので…一応…信用して使うことにします…。
mutexの信頼性をずーと疑ってたら…POSIXスレッド…pthread_mutex_lockに行き着きました…
ブロックもするそうです…ソース見てたら…カーネルの様です…pthread_mutex_lock_fullであれば…atomic_compare_and_exchange_val_acq…などもあります…テストアンドセットです…
アトミック操作です…しかし…普通にmutexを実装してpthread_mutex_lock_fullが呼ばれるかは…
分かりません…どんなmutexライブラリも最終的に…このカーネルを呼んでるだけだと思います…
呼ばれてるのは…fullではなく…弱い方のpthread_mutex_lockだと仮定しても…カーネルを疑うなんて…
本当に…ナンセンスな話なので…一応…信用して使うことにします…。
72デフォルトの名無しさん
2021/01/11(月) 16:55:02.21ID:AtO8PUuj 39です…。
結局…fullでなくても…atomic_exchange_acqが呼ばれているようです…アトミック操作です…。
なので…みなさん…安心して使いましょう…。
結局…fullでなくても…atomic_exchange_acqが呼ばれているようです…アトミック操作です…。
なので…みなさん…安心して使いましょう…。
73デフォルトの名無しさん
2021/01/11(月) 16:56:14.48ID:KSKcxhht >>72
そこでやめずに、atomic_exchange_acqの中まで追いかけてみませんか?
そこでやめずに、atomic_exchange_acqの中まで追いかけてみませんか?
74デフォルトの名無しさん
2021/01/11(月) 16:56:26.10ID:AtO8PUuj2021/01/11(月) 21:32:01.48ID:KM6/Ii6v
Debian woody の頃まで posix thread は使い物にならなかったが Debian etch からようやく使い物になった印象だな
当時から利用している身にしては
当時から利用している身にしては
76デフォルトの名無しさん
2021/01/12(火) 05:50:41.37ID:pJAexhLb わりと最近ですね。
77デフォルトの名無しさん
2021/01/12(火) 07:34:00.56ID:V95G+u6D woodyって20年くらい前だっけ
最初はJavaVMもグリーンスレッドというVM内の仮想スレッド実装だったんだよね
あれもOSネイティブのスレッドが信用されてなかったからなのかな
もちろん、現在のJavaVMはOSのネイティブスレッド使う実装になってるけどね
最初はJavaVMもグリーンスレッドというVM内の仮想スレッド実装だったんだよね
あれもOSネイティブのスレッドが信用されてなかったからなのかな
もちろん、現在のJavaVMはOSのネイティブスレッド使う実装になってるけどね
78デフォルトの名無しさん
2021/01/12(火) 07:44:47.10ID:pJAexhLb Javaといえばブラック何とかプロジェクトがSUNに文句言ってなかったっけ?
79デフォルトの名無しさん
2021/01/12(火) 07:45:53.88ID:pJAexhLb Etchが2007年と書いてあるな。
2021/01/12(火) 09:08:57.41ID:e5lAHXYT
設計思想的なことについて質問があります。
クラスの使い方がよく分かりません。
僕が今何かを作ろうと思ったら、関数の集まりが引数や返り値のやり取りを通じて協調するような設計をしてしまいます。
この引数や返り値が多く複雑になったりしてきたらクラスを用いた設計を考える、という理解は正しいでしょうか?
クラスの使い方がよく分かりません。
僕が今何かを作ろうと思ったら、関数の集まりが引数や返り値のやり取りを通じて協調するような設計をしてしまいます。
この引数や返り値が多く複雑になったりしてきたらクラスを用いた設計を考える、という理解は正しいでしょうか?
2021/01/12(火) 09:22:47.73ID:XkW3hQXX
2021/01/12(火) 13:35:30.39ID:lxco4c0J
個人的には、一度無理にでも概念(ウインドウとか表示とか作ってるソフトの主要な概念)をクラス名にして作ってみるといいとおも
やってるうちに慣れてくる
やってるうちに慣れてくる
83デフォルトの名無しさん
2021/01/12(火) 14:01:10.35ID:V95G+u6D そうだね
なにかを題材にしてオブジェクト指向やってみるのがいいと思う
でもウインドウはどうかなー そもそもUIツールキットをある程度知らないといけないし
GUIってオブジェクト指向らしからぬ部分も多いので
もっとビジネスロジック中心の題材がいいと思うよ たとえば掲示板システムとか
板には複数のスレがあって、各スレの中には複数のレスが並んでて、スレの書き込むメソッドでレスが1つ増えてーみたいな
なにかを題材にしてオブジェクト指向やってみるのがいいと思う
でもウインドウはどうかなー そもそもUIツールキットをある程度知らないといけないし
GUIってオブジェクト指向らしからぬ部分も多いので
もっとビジネスロジック中心の題材がいいと思うよ たとえば掲示板システムとか
板には複数のスレがあって、各スレの中には複数のレスが並んでて、スレの書き込むメソッドでレスが1つ増えてーみたいな
2021/01/12(火) 17:32:55.18ID:+0XoTmdG
>>82
初歩的な質問なのですが、クラスってモノじゃなくて概念でも良いのでしょうか
つまり、歩く人のプログラムを作るとき、人というクラスが歩くというメソッドを持っていても良いし、歩くというクラスが一歩進むというメソッドを持っていても良いのでしょうか
言語の仕様上はもちろんどちらでも良いと思いますが、どちらの設計の方が筋が良いということはないと思って良いですか?
初歩的な質問なのですが、クラスってモノじゃなくて概念でも良いのでしょうか
つまり、歩く人のプログラムを作るとき、人というクラスが歩くというメソッドを持っていても良いし、歩くというクラスが一歩進むというメソッドを持っていても良いのでしょうか
言語の仕様上はもちろんどちらでも良いと思いますが、どちらの設計の方が筋が良いということはないと思って良いですか?
2021/01/12(火) 17:34:51.31ID:fQCYjk84
ナントカ系の関数群みたいに相互に関連し合っているものを
暗黙じゃなく明確化するのがクラスだよ
暗黙じゃなく明確化するのがクラスだよ
87デフォルトの名無しさん
2021/01/12(火) 17:38:10.34ID:V95G+u6D >>85
「歩く」をクラスにするよりは「歩ける」をインターフェースにしたらどうかな
人間クラスに「歩ける」インターフェースを実装することで「歩く」メソッドがあることを保証できる
対象ドメインをどのようにモデル化するかは状況や要件次第
「歩く」をクラスにするよりは「歩ける」をインターフェースにしたらどうかな
人間クラスに「歩ける」インターフェースを実装することで「歩く」メソッドがあることを保証できる
対象ドメインをどのようにモデル化するかは状況や要件次第
2021/01/12(火) 19:05:06.19ID:mPDSlMxM
メタファとして生き物がよく用いられるけどなんだかなあっていつも思う
2021/01/12(火) 19:50:41.34ID:YNFRivpW
>>87
「歩け」インターフェースを定義したらインスタンスが歩ける想定であることは自明なのでは…
ちなメソッドは一般にオブジェクトの状態変化を引き起こすブツなので
命令型プログラミングの範疇であり命令形で命名すうるが正しい
※ 個人の感想です
「歩け」インターフェースを定義したらインスタンスが歩ける想定であることは自明なのでは…
ちなメソッドは一般にオブジェクトの状態変化を引き起こすブツなので
命令型プログラミングの範疇であり命令形で命名すうるが正しい
※ 個人の感想です
2021/01/12(火) 19:52:42.41ID:YNFRivpW
しかしインスタンスの生成というプロセスは関数型プログラミングから拝借しており、
命令型と関数型のいいとこ取りしようとして失敗した
classベースのオブジェクト志向は
命令型と関数型のいいとこ取りしようとして失敗した
classベースのオブジェクト志向は
91デフォルトの名無しさん
2021/01/12(火) 19:58:16.79ID:GTfU1r+6 何ベースのが成功なの?
2021/01/13(水) 09:25:15.89ID:X1FbeZvQ
場合によっては歩くクラスもありだと思うよ。
ゲームで次の行動を一つずつ記憶させたい場合とか。
commandパターン、mementoパターンでググって
ゲームで次の行動を一つずつ記憶させたい場合とか。
commandパターン、mementoパターンでググって
93デフォルトの名無しさん
2021/01/13(水) 09:45:27.73ID:D0cZCa+j 歩くということは、位置が変化する。
現在位置は人オブジェクトのプロパティなのか?
それでええのか?
現在位置は人オブジェクトのプロパティなのか?
それでええのか?
2021/01/13(水) 11:14:57.57ID:XODVGtfI
2021/01/13(水) 12:34:30.18ID:QVnLWQ3q
96デフォルトの名無しさん
2021/01/13(水) 13:12:01.01ID:D0cZCa+j >>94
じゃあ将棋の駒オブジェクトはプロパティとして位置を持っているのか?
じゃあ将棋の駒オブジェクトはプロパティとして位置を持っているのか?
97デフォルトの名無しさん
2021/01/13(水) 14:09:32.74ID:D0cZCa+j 俺の考えるOOシステムでは、駒オブジェクトは盤面オブジェクトやルールブックオブジェクトへの参照を持っいる。
駒オブジェクトへ前へ3移動とメッセージを送ると、駒オブジェクトはルールブックオブジェクトと盤面オブジェクトを用いて、移動可能であれば盤面オブジェクトへ自身を移動するようメッセージングする。
駒オブジェクトへ前へ3移動とメッセージを送ると、駒オブジェクトはルールブックオブジェクトと盤面オブジェクトを用いて、移動可能であれば盤面オブジェクトへ自身を移動するようメッセージングする。
2021/01/13(水) 15:31:14.00ID:Dg6tKq+M
intを継承してmyintクラスを作ることは可能ですか?
2021/01/13(水) 15:38:23.35ID:CyYDkVRJ
システム次第でしょ。
もしも将棋の駒が自律歩行多脚戦車だったら、GPSシステムがすべての位置情報を管理してるなんておかしいし。
もしも将棋の駒が自律歩行多脚戦車だったら、GPSシステムがすべての位置情報を管理してるなんておかしいし。
100デフォルトの名無しさん
2021/01/13(水) 15:38:43.61ID:D0cZCa+j enum class なら可能。
101デフォルトの名無しさん
2021/01/13(水) 20:01:32.91ID:D0cZCa+j C++はテンプレートがあるので設計の詳細を先送りできる。
その特徴を生かせるように、プッシュ型を流行らせませんか?
プッシュ型は、前提が少ないので、利用者が自由に組み合わせることが出来ます。
これは、インターフェースによって事前に詳細を設計してしまう方式と真逆かもしれないが、組み合わせによって機能を作ることが出来まっする。
その特徴を生かせるように、プッシュ型を流行らせませんか?
プッシュ型は、前提が少ないので、利用者が自由に組み合わせることが出来ます。
これは、インターフェースによって事前に詳細を設計してしまう方式と真逆かもしれないが、組み合わせによって機能を作ることが出来まっする。
102デフォルトの名無しさん
2021/01/13(水) 21:14:51.93ID:XHABqTxh プッシュ型って何?
103デフォルトの名無しさん
2021/01/14(木) 06:54:42.42ID:mrWYZ3Pm Caper や Bison でプッシュ型を調べてみるとわかると思います。
104デフォルトの名無しさん
2021/01/14(木) 06:59:25.06ID:mrWYZ3Pm あらゆるソフトウェアで使いまわされるライブラリにおいて、詳細が既に決まっているのは不自由なことです。
105デフォルトの名無しさん
2021/01/14(木) 07:12:21.89ID:FFXK54Rt templateと比べてプッシュ型の利点が分からん。
106デフォルトの名無しさん
2021/01/14(木) 07:23:48.43ID:mrWYZ3Pm >>105
プッシュ型はパーサーでよく使われます。
ユーザーが柔軟性を求めるからです。
Caperはプッシュ型、Bisonはパーサー側が文字を読む方式ですが、オプションとしてプッシュ型を選べます。
パーサにおいてプッシュ型とは、(パーサではなく)パーサを呼び出す側が文字を送り込みます。
それによって何が起きるでしょうか?
従来のパーサーは状態と共に行番号を保存します。
プッシュ型の場合、行番号を保存するのは呼び出し側です。
パーサーが読む文字とは何でしょうか?
プッシュ型において、Cではint、C++ではユニコード。コードポイントです。
文字デコードを行うのは、呼び出し側です。
では従来のパーサでは?
行番号を管理するためには、文字デコードもパーサーの仕事です。
つまりパーサーは大きな塊でアリ、組み合わせる部品ではありません。
プッシュ型はパーサーでよく使われます。
ユーザーが柔軟性を求めるからです。
Caperはプッシュ型、Bisonはパーサー側が文字を読む方式ですが、オプションとしてプッシュ型を選べます。
パーサにおいてプッシュ型とは、(パーサではなく)パーサを呼び出す側が文字を送り込みます。
それによって何が起きるでしょうか?
従来のパーサーは状態と共に行番号を保存します。
プッシュ型の場合、行番号を保存するのは呼び出し側です。
パーサーが読む文字とは何でしょうか?
プッシュ型において、Cではint、C++ではユニコード。コードポイントです。
文字デコードを行うのは、呼び出し側です。
では従来のパーサでは?
行番号を管理するためには、文字デコードもパーサーの仕事です。
つまりパーサーは大きな塊でアリ、組み合わせる部品ではありません。
107デフォルトの名無しさん
2021/01/14(木) 07:27:04.63ID:mrWYZ3Pm プッシュ型はUNIXに通じるものがありますが、UNIXでは実現されませんでした。
108デフォルトの名無しさん
2021/01/14(木) 07:47:44.25ID:mrWYZ3Pm パーサーは本来、構文解析が仕事です。
しかし、現状多くのパーサーは、構文解析以外の機能を密に結合している。
本来の仕事以外は分離して、小さな部品にすることで再利用性が高まる。
という感じですかね。
これはテンプレートと同じでもろ刃の剣でもあるんですよ。
詳細を設計しないんですから。
しかし、STLの寿命の長さを見て分かる通り、詳細が設計されていないという事は利用者が自由に設計できるという事で、使い出があるんです。
しかし、現状多くのパーサーは、構文解析以外の機能を密に結合している。
本来の仕事以外は分離して、小さな部品にすることで再利用性が高まる。
という感じですかね。
これはテンプレートと同じでもろ刃の剣でもあるんですよ。
詳細を設計しないんですから。
しかし、STLの寿命の長さを見て分かる通り、詳細が設計されていないという事は利用者が自由に設計できるという事で、使い出があるんです。
109デフォルトの名無しさん
2021/01/14(木) 07:48:23.53ID:mrWYZ3Pm もちろん、パーサーに限った話ではないですよ。
例です。
例です。
110デフォルトの名無しさん
2021/01/14(木) 09:22:59.17ID:EIDQMz1r みんながみんなパーサーを開発する側じゃないからなー
もっと身近な例はないですか?
このようなデザインパターンがプッシュ型だとこうなる、みたいな
もっと身近な例はないですか?
このようなデザインパターンがプッシュ型だとこうなる、みたいな
111デフォルトの名無しさん
2021/01/14(木) 09:29:21.76ID:mrWYZ3Pm112デフォルトの名無しさん
2021/01/14(木) 10:01:10.49ID:mp+NLhBe >>111
身近な例はないかという問いに対しその回答は意味不明では?
身近な例はないかという問いに対しその回答は意味不明では?
113デフォルトの名無しさん
2021/01/14(木) 10:15:16.01ID:mrWYZ3Pm まあそうですね。
すいませんでした。
すいませんでした。
114デフォルトの名無しさん
2021/01/14(木) 10:22:13.84ID:FFXK54Rt 身近な例で利点があるなら広めるのに協力するのもいいが今の時点で利点が分からん。
115デフォルトの名無しさん
2021/01/14(木) 15:40:36.18ID:qrpkNJTC 別にC++だけの問題じゃないんだけど…質問…例えば…エクスプローラのようにファイル一覧出すじゃん…
画像や動画は…サムネイルを出すじゃん…このサムネイルは非同期で更新になるじゃん…
一度開いたら…キャッシュから読み込みたいじゃん…このキャッシュの保存ってさぁ…一意にするのに…
ファイルパス・更新日時・サイズである程度一意になるけど…完璧な一意ではないじゃん…
同じ名前・同じ更新日時・同じサイズで上書きされたら、前の画像がサムネイルに出るじゃん…
どうすんの?
画像や動画は…サムネイルを出すじゃん…このサムネイルは非同期で更新になるじゃん…
一度開いたら…キャッシュから読み込みたいじゃん…このキャッシュの保存ってさぁ…一意にするのに…
ファイルパス・更新日時・サイズである程度一意になるけど…完璧な一意ではないじゃん…
同じ名前・同じ更新日時・同じサイズで上書きされたら、前の画像がサムネイルに出るじゃん…
どうすんの?
116デフォルトの名無しさん
2021/01/14(木) 15:42:53.95ID:qrpkNJTC キャッシュなんてそんなものだから…それでいいのかなぁ…
117デフォルトの名無しさん
2021/01/14(木) 15:53:35.11ID:mp+NLhBe その気持ち悪い「...」をやめてくれ
118デフォルトの名無しさん
2021/01/14(木) 15:55:13.17ID:EIDQMz1r ファイルパスと更新日時で一意になると考えていいでしょ
コンテンツが変更されれば更新日時が進むという前提で
それさえも許せないクリティカルなシステムならファイルの全バイト列から衝突率の低いハッシュ作るとかファイル読むのと変わらんことになる
クリティカルなシステムではキャッシュ使わんな
コンテンツが変更されれば更新日時が進むという前提で
それさえも許せないクリティカルなシステムならファイルの全バイト列から衝突率の低いハッシュ作るとかファイル読むのと変わらんことになる
クリティカルなシステムではキャッシュ使わんな
119デフォルトの名無しさん
2021/01/14(木) 16:05:02.51ID:qrpkNJTC なるほど…。
120はちみつ餃子 ◆8X2XSCHEME
2021/01/14(木) 16:09:33.34ID:9qLPLWCT https://martinfowler.com/bliki/TwoHardThings.html
> There are only two hard things in Computer Science: cache invalidation and naming things.
計算機科学においては二つの難しいことがあります。
キャッシュの無効化と名前の付け方です。
> There are only two hard things in Computer Science: cache invalidation and naming things.
計算機科学においては二つの難しいことがあります。
キャッシュの無効化と名前の付け方です。
121はちみつ餃子 ◆8X2XSCHEME
2021/01/14(木) 16:16:29.09ID:9qLPLWCT ファイルシステムによるけど iノード番号だったり
それに近い管理機構で一意に特定できる場合もあるんじゃないの。
サムネイルくらいなら雑でいいやという割り切りもあると思うけど、
ある程度は不整合がないようにする努力もしてると思う。
それに近い管理機構で一意に特定できる場合もあるんじゃないの。
サムネイルくらいなら雑でいいやという割り切りもあると思うけど、
ある程度は不整合がないようにする努力もしてると思う。
122デフォルトの名無しさん
2021/01/14(木) 23:16:54.98ID:9gUF6PTW 特徴的な文体はblogでも見た!
123デフォルトの名無しさん
2021/01/14(木) 23:49:25.09ID:9gUF6PTW スヌープとLRUでおk
この2つでダメだという香具師は、
スヌーピングのロジック設計をサボっているか、
メモリをケチって必要量に未達なだけ
この2つでダメだという香具師は、
スヌーピングのロジック設計をサボっているか、
メモリをケチって必要量に未達なだけ
124デフォルトの名無しさん
2021/01/16(土) 08:13:56.08ID:dLwYQ6PK おはようございますみなさま、質問させてください
ユーザー定義クラスを作成し、循環参照を防止するためweak_ptrをメンバに持たせています。
そして任意の処理でshared_ptrをweak_ptrに代入し使用したいと思っておりました。
しかし、メンバ関数内部でweak_ptrを使用すると、式にはポインタ型が必要です、旨のエラーが出てしまいます。
調べてみたところ、lock()でshared_ptrに再度権利委譲するとshared_ptr側から動くのですが、私が初心者な事もあり何か釈然としません(我が儘でしょうか……)
一度weak_ptrに落とし込んだものを再度shared_ptrに戻す部分が引っかかっているのだと思います(気にしすぎですかね)
そこでお聞きしたいのですが、クラス内部で動的に定めたいと思っているweak_ptrを使う際に、これ以外の方法はありますでしょうか?
それとも上記の通りlock()で一時的なshared_ptrに束縛した方がいいのでしょうか?
朝から長文失礼しました
ユーザー定義クラスを作成し、循環参照を防止するためweak_ptrをメンバに持たせています。
そして任意の処理でshared_ptrをweak_ptrに代入し使用したいと思っておりました。
しかし、メンバ関数内部でweak_ptrを使用すると、式にはポインタ型が必要です、旨のエラーが出てしまいます。
調べてみたところ、lock()でshared_ptrに再度権利委譲するとshared_ptr側から動くのですが、私が初心者な事もあり何か釈然としません(我が儘でしょうか……)
一度weak_ptrに落とし込んだものを再度shared_ptrに戻す部分が引っかかっているのだと思います(気にしすぎですかね)
そこでお聞きしたいのですが、クラス内部で動的に定めたいと思っているweak_ptrを使う際に、これ以外の方法はありますでしょうか?
それとも上記の通りlock()で一時的なshared_ptrに束縛した方がいいのでしょうか?
朝から長文失礼しました
125デフォルトの名無しさん
2021/01/16(土) 08:49:06.94ID:ld2GCDwz ロックしないと知らない間に参照先のshared_ptrで持ってるオブジェクトが破壊されてても文句言えないけどそれでもいいの?
weak_ptrってそういうものだぞ
weak_ptrってそういうものだぞ
126デフォルトの名無しさん
2021/01/16(土) 09:17:41.99ID:dLwYQ6PK127デフォルトの名無しさん
2021/01/19(火) 02:35:16.36ID:y82ZfCrD 移譲って要は継承せずにオブジェクトとして使うってことですよね?
なぜ「移譲」なんてわけわからない名前がついてるんですか?
なぜ「移譲」なんてわけわからない名前がついてるんですか?
128デフォルトの名無しさん
2021/01/19(火) 04:45:45.04ID:KGVX5wki 移譲じゃなくて委譲な。
転送でもいいと思うよ
転送でもいいと思うよ
129デフォルトの名無しさん
2021/01/19(火) 07:52:05.16ID:Uy0+fZqK 代理、丸投げ
130デフォルトの名無しさん
2021/01/19(火) 09:18:39.64ID:xem4SJ/U 日本語の問題だけど移譲は同じレベルに権限等を移すこと、委譲は下のレベルに移すことらしい
委譲は継承より権限の制限があるという含みがあるんだと思う
あくまで人間の組織での比喩なんだろうけど
委譲は継承より権限の制限があるという含みがあるんだと思う
あくまで人間の組織での比喩なんだろうけど
131デフォルトの名無しさん
2021/01/19(火) 09:54:48.36ID:QmODXpTw 名前付けるほどのことか?と問われればたしかにそう思う
クラス内で他のクラスオブジェクトを使ってるだけw
クラス内で他のクラスオブジェクトを使ってるだけw
132デフォルトの名無しさん
2021/01/19(火) 11:29:25.06ID:Bl6CuSRR 移譲コンストラクタってC++11まで存在しなかったの?
133はちみつ餃子 ◆8X2XSCHEME
2021/01/19(火) 11:40:18.61ID:Zp03eKCw134デフォルトの名無しさん
2021/01/19(火) 16:38:03.96ID:8JRMUdmW C++03の頃のプログラミングめちゃくちゃ大変そうだね・・・
135デフォルトの名無しさん
2021/01/19(火) 20:00:27.80ID:rn87bDt4 「オブジェクト指向?じゃあ継承しなきゃ!共通実装はみんな継承でポリモにしろ!」みたいなノリのクソ設計が溢れかえった時期があって
カウンターとして無理に継承せんでもオブジェクト持って使えばええんやでっていう事に名前付けたのが委譲とかコンポジションとか
しょうもないんだけど継承教に対抗するには名前が必要だったんよ
カウンターとして無理に継承せんでもオブジェクト持って使えばええんやでっていう事に名前付けたのが委譲とかコンポジションとか
しょうもないんだけど継承教に対抗するには名前が必要だったんよ
136はちみつ餃子 ◆8X2XSCHEME
2021/01/19(火) 21:06:03.25ID:Zp03eKCw137デフォルトの名無しさん
2021/01/19(火) 22:52:29.91ID:Bl6CuSRR テンプレート使わなければC++03でもいける(かも)
138デフォルトの名無しさん
2021/01/19(火) 23:09:23.44ID:7+t4BBWY なんか、ここはどこ私はだあれなやついるなw
なんでテンプレートが出てくるのか
なんでテンプレートが出てくるのか
139デフォルトの名無しさん
2021/01/19(火) 23:29:07.70ID:LToFUUAC C++03にはテンプレート無いしな
140デフォルトの名無しさん
2021/01/19(火) 23:43:32.07ID:7+t4BBWY 何を狙ってボケてんのかわからん
解説求む
解説求む
141デフォルトの名無しさん
2021/01/20(水) 19:27:35.22ID:kPiTytYK142デフォルトの名無しさん
2021/01/20(水) 19:33:42.85ID:kPiTytYK あ、委譲コンストラクタが無くても、の話であって03と11がどうこうじゃないよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- (´・ω・`)おいそこ。そこの貴様だ。へらへらするな。
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
