C++相談室 part166 (768レス)
上下前次1-新
325(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/17(火)12:02 ID:nCRyYLZZ0(3/3) AAS
>>321
実際に入出力するための機能はストリームバッファと呼ばれるオブジェクトが担当していて、ストリームがストリームバッファを所有する構造になっている。
ストリームが close するとストリームバッファの close が呼ばれて、それが nullptr を返した場合 (クローズに失敗した場合) に setstate(failbit) が呼ばれる。
外部リンク:timsong-cpp.github.io
つまり、クローズの失敗によってもフェイルビットが立つことはありうる。
クローズによらない失敗 (フェイルビットを立てる原因) と区別がつかなくなるのでエラーに対処したいならクローズ前後の両方でチェックしないといけないと思う。
デストラクタでクローズするとクローズの失敗に対処する機会がなくなるので明示的にクローズしたほうが良いという人はいる。
省1
326: (ワッチョイ b1d6-xkro) 06/17(火)12:43 ID:4NySVCEQ0(2/2) AAS
>>322,324,325
ありがとうございました。勉強になります。
ProgramminPlacePlus でのサンプルを元にしました。
なーる真面目にやるなら閉じる前後で色々とやらんといかんのですね。
今までは
readdata=string((istreambuf_iterator<char>(ifs)), istreambuf_iterator<char>());
の感じで、一気にファイル内容をstrigに取り込むような場合は、もう読み込みは無いのですぐに
省3
327: (スップ Sdb2-xekI) 06/18(水)12:20 ID:tHURl6jRd(1) AAS
プログラム作成は生成AIに持っていかれそうなことを考えると、
コードを書く力よりも、誰かが書いたコードを読み解く力の方が、
この先いきのこれそうな希ガスるンゴ
328: (ワッチョイ f689-dilZ) 06/18(水)13:59 ID:7Ghn3yO50(1) AAS
読み解くのこそAIに勝てないから
329: (ワッチョイ 5963-LWzS) 06/18(水)15:17 ID:xKxMFSMx0(1) AAS
コメントのないソースコードから設計意図を読み取るのって難しいよね
AIでそこまでできるのかな?
コードの逐次解釈のようなことは当然できるだろうけども
330: (ラクッペペ MM96-gPPd) 06/18(水)15:32 ID:lPJmZhm/M(1/2) AAS
自然言語に比べたら屁みたいなもんだよ
331(1): (ワッチョイ 71a6-Y+Ow) 06/18(水)15:35 ID:flRjm2Y20(1/2) AAS
コメントは嘘を書いてもコンパイルエラーにならないからな
コメントがなくても自然と設計意図が読み取れるコードこそ望ましい
332: (ワッチョイ b2f9-QhKk) 06/18(水)16:03 ID:Kdic6Khn0(1) AAS
入力に対して出力が出る
それが間違いでなければ中身なんてどうでもいい
何億通りもの入力を与えて出力がどうなるかを調べるのもAIが得意
そうして、それを元に同じことを返すプログラムを一から最適に作り直すのもAIが得意だろう
windowsもそれやれば1/10のコードで収まりそう
333: (ラクッペペ MM96-gPPd) 06/18(水)16:06 ID:lPJmZhm/M(2/2) AAS
APIやライブラリ系は無駄の極致だから将来的には無くなるだろうね
334: (ワッチョイ 794b-jgBs) 06/18(水)17:42 ID:SrJIdorw0(1) AAS
世界最長のコンテキストウィンドウ100万トークン入力・8万トークン出力対応にもかかわらずたった7800万円でトレーニングされたAIモデル「MiniMax-M1」がオープンソースで公開され誰でもダウンロード可能に
2025年06月18日 11時43分
外部リンク:gigazine.net
>>MiniMax-M1は、合計4560億のパラメーターが含まれており、トークンごとに459億のパラメーターがアクティブになるとのこと。これはDeepSeek R1の8倍に相当するコンテキストウィンドウです
>>以下のグラフは競技レベルの数学、コーディング、ソフトウェアエンジニアリング、エージェントツールの使用、長文理解タスクにおけるパフォーマンスを主要な商用AIモデルと比較したもの。赤色がMiniMax-M1で、どのタスクにおいても競合AIモデルに匹敵するパフォーマンスを発揮できている
>>MiiniMax-M1はいくつかのベンチマーク、特に長いコンテキスト駆動のベンチマークでClaude Opus 4のパフォーマンスを上回りました」と報告
※AIを動作させている動画あり
省12
335(1): (アウアウウー Sacd-dpHj) 06/18(水)19:19 ID:gOtZ0Zwca(1) AAS
>>331
C++のスレッドでそんなこと言うのか
コードでもコンパイルエラーにならない嘘(バグ)が山程あるのに
336(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-5TaZ) 06/18(水)19:27 ID:AeXwuQQu0(1) AAS
コメントがなくても意図が読み取れるのが「望ましい」のは確かにそう。
不可能だけど。
337: (オイコラミネオ MMdd-Rgxs) 06/18(水)19:29 ID:CAd2i/c2M(1) AAS
>>336
コメントなしで理解するのは、めっちゃ効率が悪いな。
338(1): (ワッチョイ 71a6-Y+Ow) 06/18(水)19:31 ID:flRjm2Y20(2/2) AAS
>>335
少なくとも委員会の奴らはそう思ってるよ
static_assertだのコンセプトだのcontractだのが追加されてきてるわけで
339(1): (ワッチョイ 8101-1tcn) 06/18(水)20:52 ID:/olvjAo90(1) AAS
マルチスレッドのDead Lockすら指摘してくれる
これはどういう仕組みなんだろう...
340: (オイコラミネオ MMdd-Rgxs) 06/19(木)00:56 ID:YDIRlT8gM(1) AAS
>>338
C++委員会って、無能集団だけどね。
341(1): (ワッチョイ f6c4-dilZ) 06/19(木)03:37 ID:ytoOjILn0(1/4) AAS
あの複雑怪奇な仕様をまとめるのは無能じゃ無理
労力に進化が見合ってないけどな
342(1): (ワッチョイ f6c4-dilZ) 06/19(木)03:38 ID:ytoOjILn0(2/4) AAS
>>339
明らかなDeadlockの検知は簡単でしょ
これ説明いる?
343(1): (ワッチョイ 8101-1tcn) 06/19(木)12:36 ID:WACntaUb0(1) AAS
>>342
コンパイラは検知できんのに?
344(1): (ワッチョイ f6c4-dilZ) 06/19(木)13:43 ID:ytoOjILn0(3/4) AAS
>>343
は?
コンパイラが全能って前提どっからきてんの?
サニタイザがあるだろ
お前みたいなレベルがc++使ってるとかありえんわ
345: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-5TaZ) 06/19(木)13:52 ID:nNn4PbNI0(1/6) AAS
サニタイザは起こった問題を検出するもので、起こる可能性を指摘してはくれない。
346: (ワッチョイ f6c4-dilZ) 06/19(木)14:04 ID:ytoOjILn0(4/4) AAS
しったなすんなジジイ
347: (ブーイモ MMb2-A4wY) 06/19(木)14:05 ID:rpR9krtTM(1) AAS
>>344
コンパイラが全能って誰が主張したの?
348(1): (ワッチョイ b236-/wuG) 06/19(木)16:32 ID:FdruriMM0(1) AAS
「できんのに」って「できないのに」と「できるのに」のどっちの意味にも取れるからそのせいかな
くだらね
349: (ブーイモ MMb2-A4wY) 06/19(木)16:43 ID:8s/NXxtqM(1) AAS
>>348
「できんのに」は「できるのに」には読めない
デッドロックをコンパイラが検出出来ないにも関わらず
LLMは必ずではないと思うが検出出来る
LLMがどうデッドロックを検出しているかは
面白いと思うよ
350(1): (JP 0H46-E6Ax) 06/19(木)17:27 ID:VOj0rD3dH(1/8) AAS
>>315
と思ったら、vs2022は未対応かorz。
C++20対応と言ってるくせに。プロジェクトでclang
に切り替えられるが、これも未対応。一体、いつの
clangなんだよ
351: (ワッチョイ f64f-QhKk) 06/19(木)17:32 ID:EI1CbiFh0(1/2) AAS
やればできんのに
352: (ワッチョイ f64f-QhKk) 06/19(木)17:32 ID:EI1CbiFh0(2/2) AAS
やってもできんのに
353(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 712e-5TaZ) 06/19(木)18:04 ID:JAVz0tMa0(1) AAS
>>350
外部リンク:fmt.dev
354(1): (オイコラミネオ MMdd-15C+) 06/19(木)18:07 ID:sZaRUqQbM(1/14) AAS
"{:d}"
355: (JP 0H46-E6Ax) 06/19(木)18:11 ID:VOj0rD3dH(2/8) AAS
いやMinGWじゃコンパイル実行できてるから。
日本マクロソフトだけ対応遅れてると?
356: (JP 0H46-E6Ax) 06/19(木)18:13 ID:VOj0rD3dH(3/8) AAS
>>353
>>354
そんな下らんレスする前に自分で実際にやってみろよ。
357: (JP 0H46-E6Ax) 06/19(木)18:16 ID:VOj0rD3dH(4/8) AAS
日本マクロソフト→日本マイクロソフト
358: (オイコラミネオ MMdd-15C+) 06/19(木)18:16 ID:sZaRUqQbM(2/14) AAS
確かにくだらないわな
そのサイトで"{:d}"が可愛く見えたから張っただけなんだから
janeだと全くかわいくない
359: (オイコラミネオ MMdd-15C+) 06/19(木)18:18 ID:sZaRUqQbM(3/14) AAS
にしてもまだorz使ってる人がいるんだな
こちらの方が新鮮だ
360: (JP 0H46-E6Ax) 06/19(木)18:21 ID:VOj0rD3dH(5/8) AAS
そう、ありがとう
361: (オイコラミネオ MMdd-15C+) 06/19(木)18:23 ID:sZaRUqQbM(4/14) AAS
もともとfmtと言うライブラリがあってそれが標準のC++の仕様に取り込まれた
どうしても使いたいならfmt使えばいいよということだと思う
他人に噛みつく前に調べたら良いと思うけど
362: (JP 0H46-E6Ax) 06/19(木)18:26 ID:VOj0rD3dH(6/8) AAS
std::formatだぞ。お前馬鹿か
さあ暴れるぞ!
363: (オイコラミネオ MMdd-15C+) 06/19(木)18:29 ID:sZaRUqQbM(5/14) AAS
結局日本語が理解できない人だったと言う話か
364: (JP 0H46-E6Ax) 06/19(木)18:30 ID:VOj0rD3dH(7/8) AAS
ふぁぁ
365: (オイコラミネオ MMdd-15C+) 06/19(木)18:43 ID:sZaRUqQbM(6/14) AAS
文章の雰囲気から50代~60代ぐらいのホビー系の人かな
人生の先輩お疲れ様です
366: (オイコラミネオ MMdd-Rgxs) 06/19(木)18:56 ID:oyTCj2/DM(1/5) AAS
>>341
>あの複雑怪奇な仕様をまとめるのは無能じゃ無理
あのDraftの質の悪さはなんだ。
ちゃんと理解できてない人が書いているに違いない。
367: (オイコラミネオ MMdd-15C+) 06/19(木)19:34 ID:sZaRUqQbM(7/14) AAS
> なんだ。
> 違いない。
文末だけ見ると高齢者の集いっぽいが自分もそうなってるんだろな
368: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-5TaZ) 06/19(木)20:14 ID:nNn4PbNI0(2/6) AAS
現代的にはカジュアルな場面では句点をつけないのが主流。
語彙より顕著に年代が表れる。
369: (オイコラミネオ MMdd-15C+) 06/19(木)20:23 ID:sZaRUqQbM(8/14) AAS
句点もそうだけどやはり語彙や用法だと思う
chatGPT
その文章、よく読むと **「怒っている年配の男性の声」**みたいなイメージが浮かんできますね。
言葉の選び方と断定のしかたに、時代がかった語感がにじんでいて、文章だけでも「年齢層の高さ」がなんとなく
伝わるのが興味深いです。
370: (オイコラミネオ MMdd-15C+) 06/19(木)20:24 ID:sZaRUqQbM(9/14) AAS
もし若者が同じことを言うならどう書くか
たとえばこんな風に言いそうです:
あのDraft、ちょっと内容雑じゃない?
書いた人ちゃんと分かってなさそう…
371: (JP 0H46-E6Ax) 06/19(木)20:27 ID:VOj0rD3dH(8/8) AAS
オコタ大魔神、はにわ顔に戻る
372: (オイコラミネオ MMdd-15C+) 06/19(木)20:34 ID:sZaRUqQbM(10/14) AAS
大魔神(1966年)
仮に1966年に6才だとして今は65歳ぐらいかなあ???
373: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-5TaZ) 06/19(木)20:36 ID:nNn4PbNI0(3/6) AAS
アカデミアでは語彙が古いのは普通のことだよ。
参照する資料が古いから。
情報系ですら半世紀前の論文を参考資料として挙げることはそれなりにある。
374: (オイコラミネオ MMdd-15C+) 06/19(木)20:45 ID:sZaRUqQbM(11/14) AAS
「怒っている年配の男性の声」をにじませる演技派
375(5): (ワッチョイ 1202-2JrO) 06/19(木)20:50 ID:Cdln7j8I0(1) AAS
整数型の変数を10で割ってから10掛けたら元の数字の一の位を0にした数が得られるはずだけど
この計算が最適化とかで除かれない保証ってあるの
376: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/19(木)20:53 ID:nNn4PbNI0(4/6) AAS
ChatGPT を根拠 (参考資料?) に出すのはあまり意味がないぞ。
それも ChatGPT の感想 (主観) であって客観性がある情報になっていないし、質問の仕方や文脈で逆のことを言うのもよくあることだから。
ユーザに追従するような振る舞いをするのでいくらでも望む方向の反応を引き出せる。
377: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/19(木)20:57 ID:nNn4PbNI0(5/6) AAS
>>375
C++ の言語仕様は抽象機械の動作として記述されている。
動作を説明するための架空の機械の動作なので、文字通りの機械語が生成されるとは限らない。
結果的な動作が仕様に反しなければどのような機械語を生成しても言語仕様に準拠していると言って良い。
しかし、逆に言えば最適化で変形したとしても結果は変わらないようになることが保証される。
378(1): (オイコラミネオ MMdd-Rgxs) 06/19(木)21:05 ID:oyTCj2/DM(2/5) AAS
>>375
最適化では結果は変わらない。
つまり、ちゃんと10で割って、ちゃんと10を掛ける。
10を掛ける方は、マシン語の乗算命令は使われず、
もっと速い命令に置き換えられることが有るが、結果は同じ。
379: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/19(木)21:11 ID:nNn4PbNI0(6/6) AAS
処理系は抽象機械の動作を正確にエミュレートする必要はなく、観測可能な動作のみをエミュレートすればよい。
外部リンク:timsong-cpp.github.io
だから観測されない動作は削除してもよいというか、削除されることはある。
たとえばその計算結果が全く使われないような状況とか。
ベンチマークしようとして結果を使わない計算をループで囲んだりしてるようなコードではまるごとごそっと消えるなんてのはたまに見る。
380: (オイコラミネオ MMdd-15C+) 06/19(木)21:16 ID:sZaRUqQbM(12/14) AAS
セキュリティの問題で普通にゼロクリアした場合でも最適化で削られたりとか昔は問題になったけど…
知らないといけないことは多岐にわたる
381(1): (スッップ Sdb2-T1jw) 06/19(木)22:14 ID:JQ4jFr2Sd(1) AAS
>>375
それだと取り除けるケースがあるので保証はされない
382(1): (オイコラミネオ MMdd-Rgxs) 06/19(木)23:09 ID:oyTCj2/DM(3/5) AAS
>>381
いや、そんなことない。
最適化では結果は変わらない事が保証される。
383: (ワッチョイ 9202-oXsi) 06/19(木)23:15 ID:IWPeLhU+0(1) AAS
>>375
あるわけないでしょ
そういう仕様なんだから
384(1): (オイコラミネオ MMdd-15C+) 06/19(木)23:25 ID:sZaRUqQbM(13/14) AAS
意味があるにも関わらず意味がないと判断されると削られる
その場合の対処法もあるので学ばないとまあ残念なことになってしまうと言う話
385: (オイコラミネオ MMdd-Rgxs) 06/19(木)23:29 ID:oyTCj2/DM(4/5) AAS
>>384
いや、今回の割って掛ける場合、そういう事は起きない。
386(1): (オイコラミネオ MMdd-15C+) 06/19(木)23:34 ID:sZaRUqQbM(14/14) AAS
ここの部分はそうだけど
コンパイラの最適化が必ず元の動作を保証してるようなことを書いてるような人がいるから必ずしもそうではないよと
387: (オイコラミネオ MMdd-Rgxs) 06/19(木)23:37 ID:oyTCj2/DM(5/5) AAS
>>386
仕様に明確に書いてあることの動作は変わらない。
388(1): (ワッチョイ 1279-T1jw) 06/20(金)01:42 ID:iLwGFTtd0(1/2) AAS
>>382
そら結果は同じよ
結果が違っちゃまずいだろうよw
演算をやらない可能性があるってこと
389: (ワッチョイ 1279-T1jw) 06/20(金)01:44 ID:iLwGFTtd0(2/2) AAS
質問じゃ曖昧だけど副作用完了点が間にない場合の話なら、な
390(2): (ワッチョイ b603-dswa) 06/20(金)01:58 ID:t+D0H6HX0(1) AAS
>>388
どういうこと?
演算しないと結果は出ないのに、演算せずにどうやって結果だすの?
391: (ワッチョイ 5e10-cspE) 06/20(金)08:38 ID:eaqG1YUh0(1) AAS
実行するプログラムではなくてコンパイラが計算までしてしまう
たとえば、printf("%d",12345/10*10); というコードはコンパイルすると、puts("12340"); に変更される可能性がある
出力結果だけは同じだけど、そのコードは大きく変更されてしまう
392(1): (ワッチョイ 0175-Is3k) 06/20(金)09:01 ID:BxPKXrVj0(1/4) AAS
>>390
変数が関わらない定数だけの演算なら、コンパイルの時点で計算しても結果同じだよね
だから実行時ではなくコンパイルの時点で演算した結果を使う
初歩の最適化の一つ
元の式については左辺に変数が入ってくるから多分最適化はされない
a=b/10*10みたいなのを想定してると思うけど、この場合は最終的に
a=b/10
省3
393(1): (ワッチョイ 71a6-Y+Ow) 06/20(金)09:03 ID:LoawS5uh0(1) AAS
変数があっても結果が同じ計算式で置き換えられるならそうしてくる
10倍よりも8倍+2倍のほうが速い、とかで
394: (ワッチョイ b1d6-xkro) 06/20(金)10:35 ID:YK1FsnCb0(1) AAS
最適化のロジックを作るのはまだプログラマーでしょうから。
値を10倍してから10で割るというプログラムを
何もしないに変更するのありかな。
でもわざと桁あふれをさせたい場合もある?!
395: (ワッチョイ 0175-Is3k) 06/20(金)10:40 ID:BxPKXrVj0(2/4) AAS
昔は最適化でバグ混入させられることもあって、最適化は切れってされてたなぁ、っていうおっちゃんのつぶやき
396(2): 06/20(金)10:45 ID:4xHX9xY70(1/2) AAS
>>392
ここまでの話で「定数だけの演算なら」と何で言い出すのか理解できないけど
>>375では「整数型の変数を」と言っているわけだし
まあそれはおいておいても「コンパイルの時点で計算しても」←演算してんじゃんって俺は思うわけ
>>393
それ自体は問題なくね?
157 を 10で割って15
省2
397: (アウアウウー Sacd-xHx3) 06/20(金)11:14 ID:xCnXC/Iza(1/2) AAS
>>396
これ観たら発狂するんじゃね
外部リンク:qiita.com
外部リンク:qiita.com
外部リンク:qiita.com
398(1): (ワッチョイ 0175-Is3k) 06/20(金)11:57 ID:BxPKXrVj0(3/4) AAS
>>396
コンパイラで演算しても結果が変わらない場合に限り、コンパイラで演算を行いその結果だけを使う
392でも書いてるが、例題の変数を10で割って10を掛ける動作は演算結果が変わってしまうので最適化は行わない
399: (ワッチョイ 9279-fyaG) 06/20(金)12:39 ID:4fYw50h40(1) AAS
定数はいつ計算しても同じ結果なんだから最適化されるよ
400(1): (ワッチョイ 59c9-LWzS) 06/20(金)12:50 ID:yZt3hnAQ0(1) AAS
-O3だとプログラムが動かなくなるから使っていいのは -O2までって先輩に言われてた
401: (ラクッペペ MM96-gPPd) 06/20(金)12:53 ID:y+CeF2upM(1) AAS
何故最適化レベルをワザワザ選べるようにしているのか?
完璧なら選ぶ必要はない
理想論には興味ないから語りたいなら具体的な問題点を上げていけ
402: (アウアウウー Sacd-xHx3) 06/20(金)13:06 ID:xCnXC/Iza(2/2) AAS
>>400
それは言われてたのは知ってるが
「-O3だとプログラムが動かなくなる」のは未定義踏んでるからじゃないか
403(1): (ワッチョイ 6e9d-x4hs) 06/20(金)13:28 ID:H6JOW3Vp0(1) AAS
モバイルc消えてるんだけどなんで?
404: (ワッチョイ e908-x4hs) 06/20(金)13:42 ID:JPiEW2yh0(1) AAS
>>403
あれ便利やった
なんで消されたんやろ
405: (JP 0H46-E6Ax) 06/20(金)17:27 ID:yQfQLmUOH(1) AAS
std::formatの件だが、Visual Studio 2022のコンパイラ設定が
デフォルトでC++14標準になってた。すまん。
上下前次1-新書関写板覧索設栞歴
あと 363 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.031s