[過去ログ]
C++相談室 part156 (1002レス)
C++相談室 part156 http://mevius.5ch.net/test/read.cgi/tech/1621389313/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [] 2021/05/19(水) 10:55:13 ID:LZZifCH2 前スレ C++相談室 part155 https://mevius.5ch.net/test/read.cgi/tech/1616555235/ http://mevius.5ch.net/test/read.cgi/tech/1621389313/1
973: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/08/08(日) 15:50:15 ID:3b5W4SC5 >>972 auto は C から引き継いで C++ にも以前からあったキーワードだけれど、 誰も使ってなかったから元の意味を廃止してあらたな意味で使われるようになった。 廃止されたのは auto の以前の使い方であってキーワード自体は廃止されてない。 http://mevius.5ch.net/test/read.cgi/tech/1621389313/973
974: デフォルトの名無しさん [sage] 2021/08/08(日) 16:04:41 ID:b7/SG9Fy 値の参照値変数を伴ない値参照とでもいうべきか http://mevius.5ch.net/test/read.cgi/tech/1621389313/974
975: デフォルトの名無しさん [sage] 2021/08/08(日) 16:06:14 ID:tnUFWQWl 釣りじゃないなら、とりあえず右辺値参照でググって一通り読んでこい ここで全部説明してると長すぎる http://mevius.5ch.net/test/read.cgi/tech/1621389313/975
976: デフォルトの名無しさん [sage] 2021/08/08(日) 16:07:11 ID:b7/SG9Fy forループとかココらへんはコンパイラの最適化によっては&参照とあんま変わらんよな http://mevius.5ch.net/test/read.cgi/tech/1621389313/976
977: デフォルトの名無しさん [sage] 2021/08/08(日) 16:15:05 ID:o6Sz00kX auto && に関しては右辺値参照とは限らないというのもまたややこしい http://mevius.5ch.net/test/read.cgi/tech/1621389313/977
978: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/08/08(日) 16:16:14 ID:3b5W4SC5 >>972 && は普通は右辺値参照を意味するが、一部の状況では万能参照になる。 (言語仕様上は万能参照とは呼ばれないが通例としてそう呼ぶことが多い。) 初期化子によって左辺値参照か右辺値参照かを自動的に選択するので、 よく理解できてないなら範囲for文をつかうときは && にしておけと入門者に勧める解説はよく見る。 実際、その状況では auto& と書いても結果は変わらない。 http://mevius.5ch.net/test/read.cgi/tech/1621389313/978
979: デフォルトの名無しさん [] 2021/08/08(日) 16:53:04 ID:Hwfa9w/d >>973 >>978 ありがとう・・・! メモっとく http://mevius.5ch.net/test/read.cgi/tech/1621389313/979
980: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/08/08(日) 17:22:47 ID:3b5W4SC5 >>979 言葉の様子からは昔の C++ (C++03 以前) は使ってたのかな? と推察するけど、 C++03 と C++11 の間では大きな飛躍があって、 その後も変更は色々あるのでちょっとしたことをいちいち質問するのは効率悪いと思う。 ドキュメントを網羅的にわかりやすく整理しているとてもありがたいサイトがいくつかあって 仕様改定がどういうものだったのかもまとまっているので参考にするといいよ。 https://cpprefjp.github.io/lang/cpp11.html https://ja.cppreference.com/w/cpp/11 http://mevius.5ch.net/test/read.cgi/tech/1621389313/980
981: デフォルトの名無しさん [sage] 2021/08/08(日) 19:31:37 ID:R0ImpkBa std::threadってなぜかスレッドが実行中かどうかを調べるだけの関数がないんだよね 絶対にあった方が良いと思うんだけどなんか理由があるのかな http://mevius.5ch.net/test/read.cgi/tech/1621389313/981
982: デフォルトの名無しさん [sage] 2021/08/08(日) 19:40:44 ID:Cdmlpdjr joinableだけじゃ足りん? http://mevius.5ch.net/test/read.cgi/tech/1621389313/982
983: デフォルトの名無しさん [sage] 2021/08/08(日) 19:45:39 ID:8fWNQyKy pthreadsにそういうAPIが無いからなぁ http://mevius.5ch.net/test/read.cgi/tech/1621389313/983
984: デフォルトの名無しさん [sage] 2021/08/08(日) 19:55:15 ID:GYDyEW6S pthread_timedjoin_np()使えばいいじゃない http://mevius.5ch.net/test/read.cgi/tech/1621389313/984
985: デフォルトの名無しさん [sage] 2021/08/08(日) 20:02:19 ID:8fWNQyKy none portableじゃないですかやーだー (でも使う) 標準としては難しそう http://mevius.5ch.net/test/read.cgi/tech/1621389313/985
986: 蟻人間 ◆T6xkBnTXz7B0 [sage] 2021/08/08(日) 20:27:26 ID:7BKdY7dG native handleをgetしてWaitForSingleObject使うとか http://mevius.5ch.net/test/read.cgi/tech/1621389313/986
987: デフォルトの名無しさん [sage] 2021/08/08(日) 20:52:17 ID:GYDyEW6S >>985 nandemo portable の略だから大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1621389313/987
988: デフォルトの名無しさん [sage] 2021/08/08(日) 21:39:14 ID:yBkpHZYz 普通にミューテックスで排他して状態管理せよ…… だいたいスレッドが動いているかどうかという1 bitだけを外部が欲しがるという用途は(join操作そのものを除き)あんま無く、 キュー的なブツに対するデータの排他的な出し入れが普通伴うはず…… http://mevius.5ch.net/test/read.cgi/tech/1621389313/988
989: デフォルトの名無しさん [sage] 2021/08/08(日) 21:44:02 ID:yBkpHZYz ミューテックスで数千クロックサイクル浪費するのが嫌という向きは知らん スピンロックとかdouble-checking lockみたいな対策になるかと思うが絶対安全かつポータブルな 方法というものは無くなる希ガス http://mevius.5ch.net/test/read.cgi/tech/1621389313/989
990: デフォルトの名無しさん [sage] 2021/08/08(日) 22:18:09 ID:GYDyEW6S >>988 速度重視でmap/unordered_mapでコンテナ作ってみたけどやっぱり仕様変更に耐えられるvector/listコンテナ最強的なオチに似たものある http://mevius.5ch.net/test/read.cgi/tech/1621389313/990
991: デフォルトの名無しさん [sage] 2021/08/08(日) 22:43:58 ID:8fWNQyKy キューへの投入と取り出しがそれぞれ1スレッドだけならミューテックスを使わなくてもアトミック変数だけで排他出来る(OSに仲裁してもらわなくていい) http://mevius.5ch.net/test/read.cgi/tech/1621389313/991
992: デフォルトの名無しさん [sage] 2021/08/08(日) 23:27:24 ID:yBkpHZYz OSの助けなしにどうやって待ち(と起床)を実現するつもりなんじゃ…… http://mevius.5ch.net/test/read.cgi/tech/1621389313/992
993: デフォルトの名無しさん [] 2021/08/08(日) 23:43:25 ID:2XV4yDHI スレッドが実行中か確認したいってどんなときなのかな? 確認したところで次の瞬間には終了してる可能性あるわけじゃん 終了を待機したいならjoinすればいいし実行中をなんのために確認したいのかよくわからん http://mevius.5ch.net/test/read.cgi/tech/1621389313/993
994: デフォルトの名無しさん [sage] 2021/08/09(月) 00:16:27 ID:bkD+cive Linuxのpthread_mutexの実装で使われているfutexも競合しないタイミングならユーザランドだけで処理が完結する (OSが仲裁する必要があるのは競合する場合だけ) > Futex operation occurs entirely in user space for the > noncontended case. The kernel is involved only to arbitrate the > contended case. As any sane design will strive for > noncontention, futexes are also optimized for this situation. > > https://man7.org/linux/man-pages/man7/futex.7.html キューが固定長, 投入スレッド1つ, 取り出しスレッド1つという条件でならアトミック変数2つ(読み出し位置, 書き込み位置)で「競合しない」ように出来るので, OSの仲裁が必要じゃなくなる http://mevius.5ch.net/test/read.cgi/tech/1621389313/994
995: デフォルトの名無しさん [sage] 2021/08/09(月) 00:22:59 ID:bkD+cive あと(pthread_mutexのようなネイティブの)mutexはそういう理由で大抵の場合は最速のロック機構になっているので, 自分で作るなら普通にmutex使った方がいいというのは同意 素人(俺とか)の考えたロックフリーデータ構造とか大抵設計か実装かその両方でバグが入る http://mevius.5ch.net/test/read.cgi/tech/1621389313/995
996: デフォルトの名無しさん [sage] 2021/08/09(月) 07:54:40 ID:eF2Q2UUf >>989 mutexが遅くてイヤならatomicじゃね? http://mevius.5ch.net/test/read.cgi/tech/1621389313/996
997: デフォルトの名無しさん [sage] 2021/08/09(月) 09:47:15 ID:TRAo/ccI >スレッドが実行中か確認したいってどんなときなのかな? 排他制御付きのキューを自力実装するときまれによくある…… キューがあふれそうになったときpushする側(producer)を待たせる作りにした場合、 popする側(consumer)はデータをpop後、producerが待っていたらその待ちを解除、 待っていなかったら何もしないという判断が居るのでこのためのフラグ (producer側にpushを継続する意思があるかどうか、またはpush待ち中かどうかを表すフラグ)が居る producerよりconsumerがいつも速い見込みでキューがあふれない前提(キューが必要に応じていくらでも大きくなる) だったりその他(待ち解除が条件変数ではなくキューイングされるイベントだったり)だと無くてもよいから ぜってー必要か、というとビミョーだがあった方がすっきり効率的なコードとして書ける http://mevius.5ch.net/test/read.cgi/tech/1621389313/997
998: デフォルトの名無しさん [sage] 2021/08/09(月) 09:51:30 ID:TRAo/ccI >>996 インターロックドインクリメントはまれによく使う インクリメントに性交したら排他的操作権を獲得できた証、 http://mevius.5ch.net/test/read.cgi/tech/1621389313/998
999: デフォルトの名無しさん [sage] 2021/08/09(月) 09:55:16 ID:TRAo/ccI となるようにインクリメントするカウンタの意味を仕向ける http://mevius.5ch.net/test/read.cgi/tech/1621389313/999
1000: デフォルトの名無しさん [sage] 2021/08/09(月) 09:55:21 ID:eF2Q2UUf >>998 アンカーミスってねい? http://mevius.5ch.net/test/read.cgi/tech/1621389313/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 81日 23時間 0分 8秒 http://mevius.5ch.net/test/read.cgi/tech/1621389313/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ https://login.5ch.net/login.php http://mevius.5ch.net/test/read.cgi/tech/1621389313/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s