1 名前:デフォルトの名無しさん mailto:sage [2020/07/13(月) 13:51:48.09 ID:WBkWHxcT.net] エスケープシーケンスやWin32APIなどの環境依存なものもOK そのような質問は必ず環境を書きましょう 半角空白やタブでのインデントはスレに貼ると無くなります コードを貼れる所 codepad.org/ https://ideone.com/ 前スレ 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1556142878/
802 名前:デフォルトの名無しさん mailto:sage [2021/07/14(水) 22:17:32.53 ID:cMMfM4oH.net] >>773 > ごめんそれは知ってるよ。 えっ? 知ってて>>767 ってそれこそ意味不明なんですけどw 結局何を言いたかったの? > あと繰り返しだけど「オーバーヘッドかかるから排他ガー」とか言ってるのは >766 だけね。 ああマジで日本語の理解力がないのね (もちろん環境によるけど)std::atomic使っても生のintと同じようにアクセスできる = 排他なんてしてない って話ね 念の為に言っておくけど>>764 が言うようなハード上の排他制御は別の話ね > 意味不明なのには同意する。 同意なんていらんから>>767 を書いた意味を説明してよ > 「std::atomicは必ず排他かかるわけでもない」は正しいけど、それと >755 が嘘であることに関係は無い。 嘘だと言うなら根拠を示したほうが良いと思うよ まあ示せないからグダグダ言うとか関係の無いメモリーオーダーの話とかにそらそうとしてるんだろうけど…
803 名前:デフォルトの名無しさん mailto:sage [2021/07/14(水) 23:08:12.27 ID:pCGEFvrX.net] >>774 「767を書いた意味」なら>>769 で説明した。 「環境によるけど)std::atomic使っても生のintと同じようにアクセスできる = 排他なんてしてない」これは正しい。 でもそれは生の int でデータ競合を避けられる理由にはならない。 >>755 が嘘だという根拠は >>749 に挙げられた規定による。その条件 "at least one of which is not atomic" について、生の int へのアクセスは "not atomic" に該当するから排他なしのアクセスでは未定義動作となりダメだと言っている。 規格文面の "atomic" は、規格が規定する C++ 抽象機械上の概念という認識。 対して 755 は、規格文面の "atomic" は各処理系でのメモリアクセスが実際にアトミックかどうかに依ると考えてそう。 残念ながら規格の文面で明確にその解釈を否定できないんだけど (https://cplusplus.github.io/LWG/issue2506) 少なくとも現メモリモデル策定当時から Web 上に積み上げられている多くの記事(標準化委員会の↑含む)や 現行コンパイラ(最適化、スレッドサニタイザなど)での扱いと合致しない。