C++相談室 part166at TECH
C++相談室 part166 - 暇つぶし2ch263:デフォルトの名無しさん
25/06/11 15:02:45.49 jtrpcw1X0.net
超音波と電波は頭蓋骨貫通する
傷害事件や殺人事件の被害が出ているのですが調査可能ですか

「最近もの忘れ多いかも」”超音波”が効く未来の脳ケアガジェットに期待
2025.06.11 12:00
URLリンク(ascii.jp)
>>サウンドウェーブイノベーション株式会社が開発中の「LIPUS-Brain」という医療機器だ。頭に当てるだけで脳を優しく刺激してくれるらしい。仕組みは「低出力パルス波超音波(LIPUS)」という特殊な音を使って、脳内の血流や神経の働きをサポートするというもの。
>> 「脳に超音波って大丈夫?」と思うかもしれないが、これは低出力&非侵襲。要は、“切らない・飲まない・痛くない”系の治療機器だ。軽症アルツハイマー病への有効性が示唆されており、2022年には厚生労働省から「先駆的医療機器」のお墨付きももらっており、現在も治験が進んでいる。
テラヘルツ波で内耳蝸牛を観察、難聴など耳の病気の診断に期待
2025年06月11日 12時00分更新
URLリンク(ascii.jp)
>> 難聴の多くは、耳の奥にある音をつかさどる器官である内耳蝸牛(かぎゅう)の障害が原因とされています。内耳蝸牛は頭蓋骨深部にあるため、光計測では骨を透過できず、X線撮影では被ばくのリスクがあり、内部の観察が困難です。
>>可視光と電波の中間帯に位置するテラへルツ波は、内部を被ばくさせずに観察できることから、安心安全な技術として注目されています。しかし、波長は約300マイクロ(マイクロは100万分の1)メートルであり、それより小さなマイクロメートルレベルの対象物は観測できませんでした。
>>マウスを用いた実験により、テラへルツ波を利用して内耳蝸牛を観察しました。研究チームは、非線形光学結晶にフェムト(フェムトは1000兆分の1)秒オーダーの短い時間だけ強いレーザー光を照射すると、テラヘルツ波が局所的に発生して点光源として扱えることに着目。点光源から発生したテラヘルツ波が、蝸牛内部で反射して戻ってくるまでの時間を測定して距離や形状を調べる独自の手法と、機械学習を利用した画像解析法を開発しました。
>>これらを適用することで、内耳蝸牛内部の3次元構造をマイクロメートルレベルで初めて可視化し、断面観察にも成功しました。

264:デフォルトの名無しさん
25/06/11 21:22:42.95 n2ChAYWba.net
このスレでやるな

265:デフォルトの名無しさん
25/06/12 00:08:06.33 ftTL3ileM.net
>>261
AGIをやるためには、ものすごい沢山の計算コアを集めたデータセンター
が必要だから、初期投資と電気代が凄い。だから、世界に少ししか作れない。
となると、みんなでそれを時分割して使うことになり、性能は
人ひとりより落ちることになろう。

266:デフォルトの名無しさん
25/06/12 00:41:06.20 ForjZNXcd.net
スレ違い。

267:デフォルトの名無しさん
25/06/12 19:58:06.94 /PCxqnPyM.net
AIに聞いてみたら、にほんのC++プログラマは、約50,112人だと
答えた。C++の世界の使用者数は約1,160万人だと言われているのに、
本当だろうか?
なお、日本の職業ゲームプログラマは数万人とされる。

268:デフォルトの名無しさん
25/06/12 20:10:27.47 GCnXcRjG0.net
↑ど素人のAIの使い方

269:はちみつ餃子
25/06/13 09:36:20.53 4zf9vL2U0.net
調査に AI を使う場合は出典なり推論過程なりを報告させて検証しろ。

270:デフォルトの名無しさん
25/06/13 10:08:04.05 yXjkXUTe0.net
AIの回答を鵜呑みにするのは、科学の大原則となる検証可能性を自ら捨てる愚行だからなぁ。

AIに限った話じゃないけど、世の中には権威に訴える論証やら人身攻撃やらが氾濫している。常に注意しないといかん。

271:デフォルトの名無しさん
25/06/13 11:11:02.52 ATYXeDVy0.net
でもこれまでもAIの代わりに本を鵜呑みにしてるんだよね
本を批判的な視点で見れるやつはAIでも見れるし
物質は原子から出来ていて原子は原子核と電子から出来ていると義務教育で習う
でも自分で検証する者は殆どおらずただ受け入れるだけ
AIも物質は原子から出来ていると答えてそれを受け入れる

272:デフォルトの名無しさん
25/06/13 11:42:29.95 T6ZAL6CyM.net
では、これは何?

URLリンク(hr-tech-lab.lapras.com)

法人向け採用サービス「LAPRAS」

プログラミング言語別:エンジニア数
プログラミング言語 エンジニア数(人)
JavaScript   218,880人
HTML/CSS    186,624人
Python     144,576人
TypeScript   123,264人
C        110,592人
Ruby      108,864人
Go       96,768人
Java      86,400人
Bash/Shell   72,000人
PHP       70,272人
C++       50,112人
Rust      37,440人
SQL       35,712人
Swift      34,560人
C#       33,408人
Kotlin     25,344人
Dart      10,944人
Lua       10,368人
PowerShell   5,184人
Assembly    3,456人

273:デフォルトの名無しさん
25/06/13 12:01:07.15 IXAej3i00.net
Rustってどうなん

274:デフォルトの名無しさん
25/06/13 12:01:24.74 eyPBizg10.net
>>272
読んできたが、転職市場にいるC++エンジニアの数(推計)であって、日本のC++エンジニア数じゃないよね
せめて中身読まんと一生使えないやつ扱いだぞ

275:デフォルトの名無しさん
25/06/13 12:11:49.34 T6ZAL6CyM.net
github の検索機能を使ってリポジトリ数を調べてみたら、以下の様になった。
この数値が正確に何を意味するのかは不明 :
(1) language:JavaScript : 23M results
(2) language:Java    : 14.3M results
(3) language:Python   : 13.5M results
(4) language:C#     : 4.5M results
(5) language:C++    : 4.1M results
(6) language:PHP    : 4.1M results
(7) language:C     : 2.7M results
(8) language:Ruby    : 2.7M results
(8) language:Rust    : 552k results
(9) language:Lua    : 338k results
(10) language:Perl   : 158k results
(11) language:WebAssembly : 1.7k results
(12) language:Wasm   : 1.6k results
(13) language:Unity   : 0 results

276:デフォルトの名無しさん
25/06/13 12:21:35.94 E42DVH7Kp.net
日本の職業C++エンジニアは少ない、みたいなのはおそらく事実だろ
ここも昔はプロが大勢居たが、今や趣味グラマか競プロしかやった事ない奴が牛耳ってるし
言ってる内容が正しければそれでもいいんだけどね

277:はちみつ餃子
25/06/13 12:27:18.04 4zf9vL2U0.net
>>274
いや、 LAPRAS が調べた言語別の割合を日本の IT エンジニア数全体に当てはめてる。
推計ではあるが 50112 人は日本の C++ エンジニアの数だ。

言語ごとに転職志望傾向に大きな違いがあればあまり当てにならない推計ではある。
ウェブ系のほうがかなり移動が激しいような印象はあるし、数倍程度の幅はあってもおかしくないかな。

278:デフォルトの名無しさん
25/06/13 12:39:15.12 eg/YBi4J0.net
>>271
電子が原子核の周りを飛び回ってる絵を教科書に載せるのはそろそろ禁止するべきだね

279:デフォルトの名無しさん
25/06/13 12:40:04.56 eg/YBi4J0.net
もっともらしい嘘を言わせると超一流だよなωωω=2πf

280:デフォルトの名無しさん
25/06/13 13:23:08.46 YG6TxuJTM.net
>>277
1.「その中でも今回は、LAPRASのDBに登録しているユーザーのうち、
・Web上に積極的に発信している
・各言語のタグを一定レベル以上で持っている
という条件を満たすエンジニアの方々4万人以上を対象に「各言語のタグを一定レベル以上で持っている方が、全体の人数のうち何%いるか?」を集計
してみました」
2.「以下の日経クロステックの記事によると、2025年時点で、日本国内のITエンジニアの人数は約144万人と推計されています」
3.「レバテック株式会社が実施した「レバテックIT人材白書2025」の調査によると、IT人材の約4割が「転職活動中」または「転職を検討中」と回答しています。」
4.「この割合を2025年のITエンジニア総数144万人に適用すると、転職市場にいる人数は約57.6万人と推定されます。
今回のLAPRASの調査からわかった「プログラミング言語別エンジニア数」の割合を上記の人数に適用すると、採用マーケット全体でのそれぞれの母集団の数は次のように推計できます」
とあるので、・・・」
となっていて、
1 に各言語を一定レベルのスキルで持つ人材(?)の分布があり、
2 より 日本の2025年のITエンジニア総数 = 144万人
2 と 3 を掛け算して、転職市場にいる人数 = 約57.6万人・・・(a)
となって、(a)に1の分布を掛け算したのが、>>272 らしい。
つまり、>>272 は、57.6 万人の中での人口分布。
そして、144 / 57.6 = 2.5 だから、日本の ITエンジニア全体では
>>272 のそれぞれを 2.5 倍しただけのスキル保持者がいる、と
いう主張になるらしい。
但し、7年くらい前(?)の日経の調査では、日本では、
「プロ」に限れば C/C++ の使用者数が TOP らしいから、
この結果とはまた異なりそうだが。

281:デフォルトの名無しさん
25/06/13 13:34:16.83 /pNq5IL+0.net
業務でC++使うこともほとんどなくなった
いまだにC++が一番得意と言い張ってはいるが、今の俺を分類するならJava/JavaScript技術者かもしれん

282:はちみつ餃子
25/06/13 14:15:13.72 4zf9vL2U0.net
>>280
その解釈だと「採用マーケット全体」と「転職市場」を同一視していることになるな。
いずれにしても何を指してるんだかよくわからんことにかわりないけど。

283:デフォルトの名無しさん
25/06/13 14:35:38.83 YG6TxuJTM.net
>>282
144万人は「日本のITエンジニアの総数」。
「採用マーケット全体」という言葉の意味とはちょっと違うと思うが。

284:はちみつ餃子
25/06/13 15:01:27.93 4zf9vL2U0.net
>>283
更にその「母集団」とも言ってるでしょ。
抜き出したサンプルが何を代表しているつもりなのかよくわからん……

>>272 の数値を合計するとだいたい 146 万ということになるから日本全体の数だと私は判断してたんだけど、
ひとりが複数言語を使うのも普通のことだしなぁ……
「一定レベル以上」がどのくらいの水準のことを言っているのかでもかなり変動するだろうし。

285:デフォルトの名無しさん
25/06/13 15:01:40.97 /pNq5IL+0.net
AIでも有料モデルで確認した結果がこちら
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

286:はちみつ餃子
25/06/13 15:02:59.82 4zf9vL2U0.net
全部が一定レベル以下の人は集計から排除されていると考えると
その割合を全体数 (転職市場にせよ日本全体にせよ) に適用するのが妥当とも思えないよな。

287:デフォルトの名無しさん
25/06/13 15:03:36.94 /pNq5IL+0.net
>>284
上に割合あるんだから、8.7%に56万かけりゃすぐに違うってわかるのでは?

288:はちみつ餃子
25/06/13 15:49:17.20 4zf9vL2U0.net
ああ、割合が最初に書いてあったのか。
全然読めてなかった。格好悪いな

289:デフォルトの名無しさん
25/06/13 22:37:54.95 22avhnRdM.net
>>272
「集計結果」のところで、JavaScriptが38%というものから
始まっている「分布図」があるが、合計してみると100%を優に超えていた。
だから、

>>284
> >>272 の数値を合計するとだいたい 146 万ということになるから日本全体の数だと私は判断してたんだけど、
> ひとりが複数言語を使うのも普通のことだしなぁ…

ということになっているらしい。
つまり、57.6 万人 に、それぞれの比率を掛けた数字になっているが、
比率自体の合計が 100% を超えているので、各言語ごとの「人数」
を全部足すと、57.6 万人を超えている。
しかし、日本のITエンジニア全体の人口は 144 万人で、
144 / 57.6 = 2.5 であることから、実際の各言語後との「人数」は、
2.5 倍する必要がある、ということになる。

290:デフォルトの名無しさん
25/06/14 18:57:21.60 Z47ni+e7a.net
最近のプログラマは割り算はおろか掛け算も出来ないらしい

291:デフォルトの名無しさん
25/06/14 19:20:56.16 TLqczxub0.net
mRNAワクチンの“新たな懸念”接種済み妊婦の子どもに「異常タンパク質構造」血中で確認★2 [Gecko★]
2025/06/14(土) 15:48:24.59
スレリンク(newsplus板)
・ワクチン問題になっている

292:デフォルトの名無しさん
25/06/14 19:34:05.95 8e4YyHKjM.net
>>290
いまの議論で、そんな人は誰もいなかったんだが。

293:はちみつ餃子
25/06/14 21:54:18.62 k1IJmlZ/0.net
Teratail とか Qiita とか Stackoverflow とかの質問も減ってる気がするなぁ。
これは C++ の衰退のせい?
それともみんな ChatGPT とか Gemini に聞いてんの?

294:デフォルトの名無しさん
25/06/14 23:01:15.38 suk2ABkrM.net
>>293
>Teratail とか Qiita とか Stackoverflow とかの質問も減ってる気がするなぁ。
それはどうやったら体感できるの?

295:デフォルトの名無しさん
25/06/15 00:11:57.49 bHsxd1q/H.net
C++の知識というか、ノウハウが一応行きわたっているからだと
思う。と言っても新人は習得に手こずるだろうけど、そばに適切
に指導してくれる先輩がいれば大丈夫。あくまで適切な指導をして
くれる先輩だけど。ラーメン屋の店主みたいな奴だと地獄。

296:デフォルトの名無しさん
25/06/15 00:11:58.07 bHsxd1q/H.net
C++の知識というか、ノウハウが一応行きわたっているからだと
思う。と言っても新人は習得に手こずるだろうけど、そばに適切
に指導してくれる先輩がいれば大丈夫。あくまで適切な指導をして
くれる先輩だけど。ラーメン屋の店主みたいな奴だと地獄。

297:デフォルトの名無しさん
25/06/15 00:12:31.42 bHsxd1q/H.net
ありゃあ、2つ入力されちまったい

298:デフォルトの名無しさん
25/06/15 00:37:51.57 bHsxd1q/H.net
>>290
いまどき8bitシフトするために256で割る意味がわかる人いるかなあ

299:デフォルトの名無しさん
25/06/15 01:26:12.38 eDpwS0UO0.net
>>296
日本のソフトウェアIT業界なんてラーメン屋レベルでしょ

だからIT後進国でしょ

300:デフォルトの名無しさん
25/06/15 03:09:45.52 4MduE0B70.net
海外のラーメン屋はもっとレベル高いんか

301:デフォルトの名無しさん
25/06/15 08:13:33.37 vQtYxwCW0.net
国語力w

302:デフォルトの名無しさん
25/06/15 09:32:37.19 sxaow1g9M.net
地方の求人情報だと
java,c,c++.javascript,typescript位の求人しかない(昔はこれにVB,COBOLが加わってた)
c++書いてる人のレベルってどのくらいなのかはわからない

303:デフォルトの名無しさん
25/06/15 16:27:00.41 eDpwS0UO0.net
そういえば、&&の代わりにand使えるのか

C#とPythonとVBAとJaveとごっちゃになるわ…

304:はちみつ餃子
25/06/15 17:15:44.30 mr/FUyDi0.net
代替表現は文字コードの都合で一部の記号がない場合のために入れたそうたけど、今となってはあまり意味がないな。
! が視覚的に目立たないから not だけは使うこともちょっとある。

305:デフォルトの名無しさん
25/06/15 17:42:56.06 dmfL2H8C0.net
>>303
それはない

306:デフォルトの名無しさん
25/06/15 18:14:03.61 DIvPIJxI0.net
>>298
整数除算よりバレルシフタの方が早いので、8ビットシフトなら素直にシフトしたほうがソースコードの意味がわかりやすい。
最近のコンパイラは賢いので256で割ってもシフト命令にされてしまうだろうが。

307:デフォルトの名無しさん
25/06/15 18:47:36.40 PKcOFo6K0.net
最近ってどういう意味で言ってんのか知らんが、定数畳み込みなんかどの言語も相当古くからやってるよ?
Fortranなんかだと手動アセンブリより遅かったら市場に受け入れられないという事情があったから最初期から最適化が一番の課題だったって聞いた
逆に現代のMPUはビット演算と整数演算じゃ速度差がそれほど出ないので、どっちで書いてもコンパイラがパフォーマンス見てどっちかを吐くようになってるよ

308:デフォルトの名無しさん
25/06/15 18:49:13.93 ltc4eKLE0.net
and,or,notは基本使うようにしてる

309:デフォルトの名無しさん
25/06/15 19:14:47.28 eDpwS0UO0.net
>>304
!IsWindowVisible()とかは、
notのほうがいいね

色も見やすい

310:デフォルトの名無しさん
25/06/15 19:49:42.63 DIvPIJxI0.net
>>307
バレルシフタと整数除算ではクロックが10倍ぐらい違う
シフタが使える時にはシフタに最適化されるはず

311:はちみつ餃子
25/06/15 20:18:51.49 mr/FUyDi0.net
ビットシフトが lea に置き換えられることがあるみたいで、命令長が長くなるだけでも結構な不利だと思うんだけどなんか良い効果があるんかね?

312:デフォルトの名無しさん
25/06/15 20:20:28.86 gRGFgZ6wM.net
>>311
lea だと、5倍とかも可能 :
lea rax,[rax+rax*4]

313:デフォルトの名無しさん
25/06/15 21:11:15.18 r3H8nvWy0.net
>>311
あとleaはフラグを更新しないから比較と分岐の間に入れてパイプラインを最適化するとか

314:デフォルトの名無しさん
25/06/16 16:06:36.68 2FW5D4OCM.net
>>313
そういう最適化は、アセンブラ名手の人間にとっては出来る事だけど、
コンパイラの最適化層でやっているコンパイラは限られるだろうね、
知らんけど。

315:デフォルトの名無しさん
25/06/16 23:49:02.72 m+kaKcwWH.net
std::formatなるものがC++20規格からあるんですねえ。
これで工学表示したときの鬱陶しい+記号を空白にできる。
しかし、fortranに似ているなあ

316:デフォルトの名無しさん
25/06/16 23:59:33.02 m+kaKcwWH.net
いやpythonか?

317:はちみつ餃子
25/06/17 10:06:16.94 nCRyYLZZ0.net
似ているというならどういう点がどういう意味で似ているのか述べないと意味ないよ。

318:デフォルトの名無しさん
25/06/17 10:52:21.85 zrrGfpYo0.net
スルーできないはちみつ

319:デフォルトの名無しさん
25/06/17 10:55:56.73 66zQf9l5H.net
昔のfortran77
write(6,100)
100 format(1h , 5x, G14.7, ...)
のformat文を連想しただけ。

str.formatにも似ているし,C#の要素も取り入れている。

320:デフォルトの名無しさん
25/06/17 10:56:25.37 2N3jqjoy0.net
あなたが落したのは、このスルー出来ないはちみつですか?
こっちのスルー出来ないはちみつですか?
って逸話を思い出した

321:デフォルトの名無しさん
25/06/17 11:13:00.43 4NySVCEQ0.net
ファイナルをクローズした時にエラーとなるのですが、これは正しいのでしょうか。
やはり、クローズはデストラクタに任せた方がいいのでしょうか。

#include <iostream>
#include <fstream>
int main() {
constexpr auto path = "tmp.txt";//なんでもいいです
std::ifstream ifs(path);
if(ifs.fail()){
std::cerr << "File open error: " << path << std::endl;
return -1;
}
std::string buf;
while(std::getline(ifs, buf))
std::cout << buf << std::endl;
ifs.close(); //←これ
if(ifs.fail()){
std::cerr << "File close error: " << path << std::endl;
return -1;
}
return 0;
}

322:デフォルトの名無しさん
25/06/17 11:27:27.12 2aAnRxo/0.net
>>321
ifs.close()前にifs.fail()は真を返す

#include <iostream>
#include <fstream>
int main() {
constexpr auto path = "tmp.txt";//なんでもいいです
std::ifstream ifs(path);
if(ifs.fail()){
std::cerr << "File open error: " << path << std::endl;
return -1;
}
std::string buf;
std::cout << "0: " << ifs.fail() << '\n';
while(std::getline(ifs, buf))
std::cout << buf << std::endl;
std::cout << "1: " << ifs.fail() << '\n';
ifs.close(); //←これ
std::cout << "2: " << ifs.fail() << '\n';
if(ifs.fail()){
std::cerr << "File close error: " << path << std::endl;
return -1;
}
return 0;
}

323:はちみつ餃子
25/06/17 11:41:50.14 nCRyYLZZ0.net
std::format の文法の参考にしていると提案文に挙げられているのは Python、 .NET系、Rust のみっつ。
URLリンク(www.open-std.org)

コンパイル時計算のメカニズムとの類似性を考慮すると Rust に特に近いと思うが、記法としては Python の影響も強いように見えるかも。

324:デフォルトの名無しさん
25/06/17 11:45:37.82 TpERKz9s0.net
>>321
close()したからではなくwhile(std::getline(ifs, buf))でeofになるまで読んだからfailになってる

325:はちみつ餃子
25/06/17 12:02:37.80 nCRyYLZZ0.net
>>321
実際に入出力するための機能はストリームバッファと呼ばれるオブジェクトが担当していて、ストリームがストリームバッファを所有する構造になっている。
ストリームが close するとストリームバッファの close が呼ばれて、それが nullptr を返した場合 (クローズに失敗した場合) に setstate(failbit) が呼ばれる。
URLリンク(timsong-cpp.github.io)
つまり、クローズの失敗によってもフェイルビットが立つことはありうる。

クローズによらない失敗 (フェイルビットを立てる原因) と区別がつかなくなるのでエラーに対処したいならクローズ前後の両方でチェックしないといけないと思う。

デストラクタでクローズするとクローズの失敗に対処する機会がなくなるので明示的にクローズしたほうが良いという人はいる。
ただ、しっかりしたホスト環境の上で動くアプリケーションでクローズが失敗するような状況を心配する意味があるかというと……まああんまりない。

326:デフォルトの名無しさん
25/06/17 12:43:21.70 4NySVCEQ0.net
>>322,324,325
ありがとうございました。勉強になります。
ProgramminPlacePlus でのサンプルを元にしました。

なーる真面目にやるなら閉じる前後で色々とやらんといかんのですね。

今までは
readdata=string((istreambuf_iterator<char>(ifs)), istreambuf_iterator<char>());
の感じで、一気にファイル内容をstrigに取り込むような場合は、もう読み込みは無いのですぐに
ifs.close()してました。

デストラクタに任せてもいいのですが、今後も使わなくなったら、即close()したいと思います。
そんなにシビアにならんでもいいようですし・・・mOm

327:デフォルトの名無しさん
25/06/18 12:20:43.59 tHURl6jRd.net
プログラム作成は生成AIに持っていかれそうなことを考えると、
コードを書く力よりも、誰かが書いたコードを読み解く力の方が、
この先いきのこれそうな希ガスるンゴ

328:デフォルトの名無しさん
25/06/18 13:59:41.64 7Ghn3yO50.net
読み解くのこそAIに勝てないから

329:デフォルトの名無しさん
25/06/18 15:17:51.63 xKxMFSMx0.net
コメントのないソースコードから設計意図を読み取るのって難しいよね
AIでそこまでできるのかな?
コードの逐次解釈のようなことは当然できるだろうけども

330:デフォルトの名無しさん
25/06/18 15:32:01.08 lPJmZhm/M.net
自然言語に比べたら屁みたいなもんだよ

331:デフォルトの名無しさん
25/06/18 15:35:59.98 flRjm2Y20.net
コメントは嘘を書いてもコンパイルエラーにならないからな
コメントがなくても自然と設計意図が読み取れるコードこそ望ましい

332:デフォルトの名無しさん
25/06/18 16:03:36.24 Kdic6Khn0.net
入力に対して出力が出る
それが間違いでなければ中身なんてどうでもいい

何億通りもの入力を与えて出力がどうなるかを調べるのもAIが得意
そうして、それを元に同じことを返すプログラムを一から最適に作り直すのもAIが得意だろう

windowsもそれやれば1/10のコードで収まりそう

333:デフォルトの名無しさん
25/06/18 16:06:21.59 lPJmZhm/M.net
APIやライブラリ系は無駄の極致だから将来的には無くなるだろうね

334:デフォルトの名無しさん
25/06/18 17:42:24.62 SrJIdorw0.net
世界最長のコンテキストウィンドウ100万トークン入力・8万トークン出力対応にもかかわらずたった7800万円でトレーニングされたAIモデル「MiniMax-M1」がオープンソースで公開され誰でもダウンロード可能に
2025年06月18日 11時43分
URLリンク(gigazine.net)
>>MiniMax-M1は、合計4560億のパラメーターが含まれており、トークンごとに459億のパラメーターがアクティブになるとのこと。これはDeepSeek R1の8倍に相当するコンテキストウィンドウです
>>以下のグラフは競技レベルの数学、コーディング、ソフトウェアエンジニアリング、エージェントツールの使用、長文理解タスクにおけるパフォーマンスを主要な商用AIモデルと比較したもの。赤色がMiniMax-M1で、どのタスクにおいても競合AIモデルに匹敵するパフォーマンスを発揮できている
>>MiiniMax-M1はいくつかのベンチマーク、特に長いコンテキスト駆動のベンチマークでClaude Opus 4のパフォーマンスを上回りました」と報告
※AIを動作させている動画あり
↓上記のAIお下記をプレイさせれば性能が判明する
Gemini 2.5 Proは手持ちのポケモンが瀕死になるとパニックに陥る
2025年06月18日 12時30分
URLリンク(gigazine.net)

[プロテクトガードやセキュリティーホール発見可能]
※1 プログラムのバグ技[裏抜け道]を使用できる=チートコードを発見可能
・ マリオカートのショートカットはプレイヤー「極悪人」の表の抜け道でNPC「一般人」は使用不可能
[インサイダー/談合/なねーロンダリング/霊感商法など行う時の悪行で音波や電波をしての悪行の方法を発見可能
※ 政治家の法律上の抜け道を仕込める=ある業種だけの法律の抜け道を発見可能
[一般大衆の思考である特定の極悪人から目線を特定の統合失調症へ返させる装置]
※ AIは正確な情報で人間を信用させれる=AIは嘘の情報を一部混ぜて人間を洗脳できる

335:デフォルトの名無しさん
25/06/18 19:19:48.46 gOtZ0Zwca.net
>>331
C++のスレッドでそんなこと言うのか
コードでもコンパイルエラーにならない嘘(バグ)が山程あるのに

336:はちみつ餃子
25/06/18 19:27:43.48 AeXwuQQu0.net
コメントがなくても意図が読み取れるのが「望ましい」のは確かにそう。
不可能だけど。

337:デフォルトの名無しさん
25/06/18 19:29:35.44 CAd2i/c2M.net
>>336
コメントなしで理解するのは、めっちゃ効率が悪いな。

338:デフォルトの名無しさん
25/06/18 19:31:31.04 flRjm2Y20.net
>>335
少なくとも委員会の奴らはそう思ってるよ
static_assertだのコンセプトだのcontractだのが追加されてきてるわけで

339:デフォルトの名無しさん
25/06/18 20:52:21.50 /olvjAo90.net
マルチスレッドのDead Lockすら指摘してくれる
これはどういう仕組みなんだろう...

340:デフォルトの名無しさん
25/06/19 00:56:42.59 YDIRlT8gM.net
>>338
C++委員会って、無能集団だけどね。

341:デフォルトの名無しさん
25/06/19 03:37:07.68 ytoOjILn0.net
あの複雑怪奇な仕様をまとめるのは無能じゃ無理
労力に進化が見合ってないけどな

342:デフォルトの名無しさん
25/06/19 03:38:19.15 ytoOjILn0.net
>>339
明らかなDeadlockの検知は簡単でしょ
これ説明いる?

343:デフォルトの名無しさん
25/06/19 12:36:13.20 WACntaUb0.net
>>342
コンパイラは検知できんのに?

344:デフォルトの名無しさん
25/06/19 13:43:01.15 ytoOjILn0.net
>>343
は?
コンパイラが全能って前提どっからきてんの?
サニタイザがあるだろ
お前みたいなレベルがc++使ってるとかありえんわ

345:はちみつ餃子
25/06/19 13:52:14.72 nNn4PbNI0.net
サニタイザは起こった問題を検出するもので、起こる可能性を指摘してはくれない。

346:デフォルトの名無しさん
25/06/19 14:04:16.80 ytoOjILn0.net
しったなすんなジジイ

347:デフォルトの名無しさん
25/06/19 14:05:21.52 rpR9krtTM.net
>>344
コンパイラが全能って誰が主張したの?

348:デフォルトの名無しさん
25/06/19 16:32:08.79 FdruriMM0.net
「できんのに」って「できないのに」と「できるのに」のどっちの意味にも取れるからそのせいかな
くだらね

349:デフォルトの名無しさん
25/06/19 16:43:21.25 8s/NXxtqM.net
>>348
「できんのに」は「できるのに」には読めない
デッドロックをコンパイラが検出出来ないにも関わらず
LLMは必ずではないと思うが検出出来る
LLMがどうデッドロックを検出しているかは
面白いと思うよ

350:デフォルトの名無しさん
25/06/19 17:27:01.33 VOj0rD3dH.net
>>315
と思ったら、vs2022は未対応かorz。
C++20対応と言ってるくせに。プロジェクトでclang
に切り替えられるが、これも未対応。一体、いつの
clangなんだよ

351:デフォルトの名無しさん
25/06/19 17:32:40.31 EI1CbiFh0.net
やればできんのに

352:デフォルトの名無しさん
25/06/19 17:32:55.29 EI1CbiFh0.net
やってもできんのに

353:はちみつ餃子
25/06/19 18:04:24.77 JAVz0tMa0.net
>>350
URLリンク(fmt.dev)

354:デフォルトの名無しさん
25/06/19 18:07:11.09 sZaRUqQbM.net
"{:d}"

355:デフォルトの名無しさん
25/06/19 18:11:23.49 VOj0rD3dH.net
いやMinGWじゃコンパイル実行できてるから。
日本マクロソフトだけ対応遅れてると?

356:デフォルトの名無しさん
25/06/19 18:13:20.06 VOj0rD3dH.net
>>353
>>354
そんな下らんレスする前に自分で実際にやってみろよ。

357:デフォルトの名無しさん
25/06/19 18:16:13.42 VOj0rD3dH.net
日本マクロソフト→日本マイクロソフト

358:デフォルトの名無しさん
25/06/19 18:16:54.55 sZaRUqQbM.net
確かにくだらないわな

そのサイトで"{:d}"が可愛く見えたから張っただけなんだから
janeだと全くかわいくない

359:デフォルトの名無しさん
25/06/19 18:18:35.94 sZaRUqQbM.net
にしてもまだorz使ってる人がいるんだな
こちらの方が新鮮だ

360:デフォルトの名無しさん
25/06/19 18:21:05.14 VOj0rD3dH.net
そう、ありがとう

361:デフォルトの名無しさん
25/06/19 18:23:03.57 sZaRUqQbM.net
もともとfmtと言うライブラリがあってそれが標準のC++の仕様に取り込まれた
どうしても使いたいならfmt使えばいいよということだと思う

他人に噛みつく前に調べたら良いと思うけど

362:デフォルトの名無しさん
25/06/19 18:26:00.99 VOj0rD3dH.net
std::formatだぞ。お前馬鹿か

さあ暴れるぞ!

363:デフォルトの名無しさん
25/06/19 18:29:34.15 sZaRUqQbM.net
結局日本語が理解できない人だったと言う話か

364:デフォルトの名無しさん
25/06/19 18:30:56.19 VOj0rD3dH.net
ふぁぁ

365:デフォルトの名無しさん
25/06/19 18:43:47.61 sZaRUqQbM.net
文章の雰囲気から50代~60代ぐらいのホビー系の人かな
人生の先輩お疲れ様です

366:デフォルトの名無しさん
25/06/19 18:56:35.62 oyTCj2/DM.net
>>341
>あの複雑怪奇な仕様をまとめるのは無能じゃ無理
あのDraftの質の悪さはなんだ。
ちゃんと理解できてない人が書いているに違いない。

367:デフォルトの名無しさん
25/06/19 19:34:35.26 sZaRUqQbM.net
> なんだ。
> 違いない。

文末だけ見ると高齢者の集いっぽいが自分もそうなってるんだろな

368:はちみつ餃子
25/06/19 20:14:57.20 nNn4PbNI0.net
現代的にはカジュアルな場面では句点をつけないのが主流。
語彙より顕著に年代が表れる。

369:デフォルトの名無しさん
25/06/19 20:23:04.02 sZaRUqQbM.net
句点もそうだけどやはり語彙や用法だと思う

chatGPT
その文章、よく読むと **「怒っている年配の男性の声」**みたいなイメージが浮かんできますね。

言葉の選び方と断定のしかたに、時代がかった語感がにじんでいて、文章だけでも「年齢層の高さ」がなんとなく
伝わるのが興味深いです。

370:デフォルトの名無しさん
25/06/19 20:24:10.13 sZaRUqQbM.net
もし若者が同じことを言うならどう書くか
たとえばこんな風に言いそうです:



あのDraft、ちょっと内容雑じゃない?

書いた人ちゃんと分かってなさそう…

371:デフォルトの名無しさん
25/06/19 20:27:45.86 VOj0rD3dH.net
オコタ大魔神、はにわ顔に戻る

372:デフォルトの名無しさん
25/06/19 20:34:02.38 sZaRUqQbM.net
大魔神(1966年)
仮に1966年に6才だとして今は65歳ぐらいかなあ???

373:はちみつ餃子
25/06/19 20:36:28.06 nNn4PbNI0.net
アカデミアでは語彙が古いのは普通のことだよ。
参照する資料が古いから。
情報系ですら半世紀前の論文を参考資料として挙げることはそれなりにある。

374:デフォルトの名無しさん
25/06/19 20:45:06.19 sZaRUqQbM.net
「怒っている年配の男性の声」をにじませる演技派

375:デフォルトの名無しさん
25/06/19 20:50:34.90 Cdln7j8I0.net
整数型の変数を10で割ってから10掛けたら元の数字の一の位を0にした数が得られるはずだけど
この計算が最適化とかで除かれない保証ってあるの

376:はちみつ餃子
25/06/19 20:53:44.24 nNn4PbNI0.net
ChatGPT を根拠 (参考資料?) に出すのはあまり意味がないぞ。
それも ChatGPT の感想 (主観) であって客観性がある情報になっていないし、質問の仕方や文脈で逆のことを言うのもよくあることだから。
ユーザに追従するような振る舞いをするのでいくらでも望む方向の反応を引き出せる。

377:はちみつ餃子
25/06/19 20:57:52.06 nNn4PbNI0.net
>>375
C++ の言語仕様は抽象機械の動作として記述されている。
動作を説明するための架空の機械の動作なので、文字通りの機械語が生成されるとは限らない。
結果的な動作が仕様に反しなければどのような機械語を生成しても言語仕様に準拠していると言って良い。
しかし、逆に言えば最適化で変形したとしても結果は変わらないようになることが保証される。

378:デフォルトの名無しさん
25/06/19 21:05:34.31 oyTCj2/DM.net
>>375
最適化では結果は変わらない。
つまり、ちゃんと10で割って、ちゃんと10を掛ける。
10を掛ける方は、マシン語の乗算命令は使われず、
もっと速い命令に置き換えられることが有るが、結果は同じ。

379:はちみつ餃子
25/06/19 21:11:49.89 nNn4PbNI0.net
処理系は抽象機械の動作を正確にエミュレートする必要はなく、観測可能な動作のみをエミュレートすればよい。
URLリンク(timsong-cpp.github.io)
だから観測されない動作は削除してもよいというか、削除されることはある。
たとえばその計算結果が全く使われないような状況とか。

ベンチマークしようとして結果を使わない計算をループで囲んだりしてるようなコードではまるごとごそっと消えるなんてのはたまに見る。

380:デフォルトの名無しさん
25/06/19 21:16:20.06 sZaRUqQbM.net
セキュリティの問題で普通にゼロクリアした場合でも最適化で削られたりとか昔は問題になったけど…
知らないといけないことは多岐にわたる

381:デフォルトの名無しさん
25/06/19 22:14:21.23 JQ4jFr2Sd.net
>>375
それだと取り除けるケースがあるので保証はされない

382:デフォルトの名無しさん
25/06/19 23:09:11.10 oyTCj2/DM.net
>>381
いや、そんなことない。
最適化では結果は変わらない事が保証される。

383:デフォルトの名無しさん
25/06/19 23:15:31.49 IWPeLhU+0.net
>>375
あるわけないでしょ
そういう仕様なんだから

384:デフォルトの名無しさん
25/06/19 23:25:09.71 sZaRUqQbM.net
意味があるにも関わらず意味がないと判断されると削られる
その場合の対処法もあるので学ばないとまあ残念なことになってしまうと言う話

385:デフォルトの名無しさん
25/06/19 23:29:59.97 oyTCj2/DM.net
>>384
いや、今回の割って掛ける場合、そういう事は起きない。

386:デフォルトの名無しさん
25/06/19 23:34:50.70 sZaRUqQbM.net
ここの部分はそうだけど
コンパイラの最適化が必ず元の動作を保証してるようなことを書いてるような人がいるから必ずしもそうではないよと

387:デフォルトの名無しさん
25/06/19 23:37:52.48 oyTCj2/DM.net
>>386
仕様に明確に書いてあることの動作は変わらない。

388:デフォルトの名無しさん
25/06/20 01:42:50.79 iLwGFTtd0.net
>>382
そら結果は同じよ
結果が違っちゃまずいだろうよw
演算をやらない可能性があるってこと

389:デフォルトの名無しさん
25/06/20 01:44:00.77 iLwGFTtd0.net
質問じゃ曖昧だけど副作用完了点が間にない場合の話なら、な

390:デフォルトの名無しさん
25/06/20 01:58:37.52 t+D0H6HX0.net
>>388
どういうこと?
演算しないと結果は出ないのに、演算せずにどうやって結果だすの?

391:デフォルトの名無しさん
25/06/20 08:38:29.48 eaqG1YUh0.net
実行するプログラムではなくてコンパイラが計算までしてしまう
たとえば、printf("%d",12345/10*10); というコードはコンパイルすると、puts("12340"); に変更される可能性がある
出力結果だけは同じだけど、そのコードは大きく変更されてしまう

392:デフォルトの名無しさん
25/06/20 09:01:01.71 BxPKXrVj0.net
>>390
変数が関わらない定数だけの演算なら、コンパイルの時点で計算しても結果同じだよね
だから実行時ではなくコンパイルの時点で演算した結果を使う
初歩の最適化の一つ

元の式については左辺に変数が入ってくるから多分最適化はされない
a=b/10*10みたいなのを想定してると思うけど、この場合は最終的に
a=b/10
c=a*10と分解して計算されるので、どちらにも変数が関わってしまい最適化対象外だと思う
a=b*(10/10)みたいな、計算優先度的に変数が関わらないところができれば最適化される

この手の手動最適化なんて考えなくなって久しいから間違ってたらすまぬ

393:デフォルトの名無しさん
25/06/20 09:03:31.40 LoawS5uh0.net
変数があっても結果が同じ計算式で置き換えられるならそうしてくる
10倍よりも8倍+2倍のほうが速い、とかで

394:デフォルトの名無しさん
25/06/20 10:35:00.76 YK1FsnCb0.net
最適化のロジックを作るのはまだプログラマーでしょうから。
値を10倍してから10で割るというプログラムを
何もしないに変更するのありかな。
でもわざと桁あふれをさせたい場合もある?!

395:デフォルトの名無しさん
25/06/20 10:40:47.81 BxPKXrVj0.net
昔は最適化でバグ混入させられることもあって、最適化は切れってされてたなぁ、っていうおっちゃんのつぶやき

396:デフォルトの名無しさん
25/06/20 10:45:39.27 4xHX9xY70.net
>>392
ここまでの話で「定数だけの演算なら」と何で言い出すのか理解できないけど
>>375では「整数型の変数を」と言っているわけだし
まあそれはおいておいても「コンパイルの時点で計算しても」←演算してんじゃんって俺は思うわけ

>>393
それ自体は問題なくね?
157 を 10で割って15
これに10を掛けるのでなく15*8+15+2 でも最適化の影響はないだろ?
割り算の方でそれが起きるなら問題だけど、>>378の人の話では起きないようだけど

397:デフォルトの名無しさん
25/06/20 11:14:53.80 xCnXC/Iza.net
>>396
これ観たら発狂するんじゃね
URLリンク(qiita.com)
URLリンク(qiita.com)
URLリンク(qiita.com)

398:デフォルトの名無しさん
25/06/20 11:57:23.05 BxPKXrVj0.net
>>396
コンパイラで演算しても結果が変わらない場合に限り、コンパイラで演算を行いその結果だけを使う
392でも書いてるが、例題の変数を10で割って10を掛ける動作は演算結果が変わってしまうので最適化は行わない

399:デフォルトの名無しさん
25/06/20 12:39:35.73 4fYw50h40.net
定数はいつ計算しても同じ結果なんだから最適化されるよ

400:デフォルトの名無しさん
25/06/20 12:50:40.34 yZt3hnAQ0.net
-O3だとプログラムが動かなくなるから使っていいのは -O2までって先輩に言われてた

401:デフォルトの名無しさん
25/06/20 12:53:23.61 y+CeF2upM.net
何故最適化レベルをワザワザ選べるようにしているのか?
完璧なら選ぶ必要はない
理想論には興味ないから語りたいなら具体的な問題点を上げていけ

402:デフォルトの名無しさん
25/06/20 13:06:46.75 xCnXC/Iza.net
>>400
それは言われてたのは知ってるが
「-O3だとプログラムが動かなくなる」のは未定義踏んでるからじゃないか

403:デフォルトの名無しさん
25/06/20 13:28:04.40 H6JOW3Vp0.net
モバイルc消えてるんだけどなんで?

404:デフォルトの名無しさん
25/06/20 13:42:00.01 JPiEW2yh0.net
>>403
あれ便利やった
なんで消されたんやろ

405:デフォルトの名無しさん
25/06/20 17:27:19.07 yQfQLmUOH.net
std::formatの件だが、Visual Studio 2022のコンパイラ設定が
デフォルトでC++14標準になってた。すまん。

406:デフォルトの名無しさん
25/06/20 18:21:03.44 4xHX9xY70.net
>>398
そんなことは知ってるのさ
「実行ごとに演算結果が変わる(可能性がある)」から最適化されない、と言うのは良いんだけど
最初からその前提の話をしていたはずなのに「演算をやらない可能性がある」と言い出しただろ?

375 整数型の変数を~(略)~この計算が最適化とかで除かれない保証ってあるの
381 それだと取り除けるケースがあるので保証はされない
382 いや、そんなことない。最適化では結果は変わらない事が保証される。
388 (略)~演算をやらない可能性があるってこと

この流れじゃ『整数型の変数(実行時に結果が変わる)の場合でも最適化によって「演算をやらない可能性がある」』ってニュアンスになっているって気づかんの?
それに対してのどういう状況だ?という>>390だよ
まあ言いたいことは分かったから別にいいけどさ

407:デフォルトの名無しさん
25/06/20 19:12:09.11 ykKOKnwYM.net
>>406
回答者にも正しいことを言っている人と間違っていることを言っている人が
いるというだけ。
正しいのは、仕様に明示されている動作については、
最適化してもしなくても結果が変わらないという事だ。
なぜなら、それが仕様なのだから。

408:はちみつ餃子
25/06/20 19:41:18.21 3ZuChe0s0.net
>>407
大元の質問からすると仕様が動作を保証するか結果を保証するかをわかってないようだからその説明では不十分でしょ。

409:デフォルトの名無しさん
25/06/20 20:44:54.01 ykKOKnwYM.net
保証されます。

410:デフォルトの名無しさん
25/06/20 21:00:28.00 M1o0ztly0.net
コンパイル時に値が決まるようなら実行時に演算されない
そうでない場合でもある整数が決まった値になることが保証されていることがコンパイル時に分かっているなら最適化されて演算されないケースがある
それ以外なら最適化されない

411:デフォルトの名無しさん
25/06/20 21:06:32.84 80Iion+LM.net
いずれにせよ結果を使わないなら最適化で丸々消される

412:デフォルトの名無しさん
25/06/20 21:12:56.63 BxPKXrVj0.net
>>409
ただしバグがなければ

413:デフォルトの名無しさん
25/06/20 21:18:29.51 80Iion+LM.net
最適化の時点でコードが消されるので直に0で除算をするとコンパイルエラー

変数に突っ込んでるとコンパイル可能で実行してもその部分は最適化され消されてるのでゼロ除算にならない
もちろんconstにしててもコンパイルエラー

414:デフォルトの名無しさん
25/06/20 21:43:49.77 ykKOKnwYM.net
>>412
それは、ユーザープログラムのバグではなく、コンパイラのバグだ。
コンパイラにバグが無ければ、四則演算や&,|,~,^,&&,||などと
括弧の組み合わせた結果は、最適化しても変わらない。
0除算に関しては話が別。

415:デフォルトの名無しさん
25/06/20 21:48:47.56 ykKOKnwYM.net
最適化されて変わる可能性があるのは、今思い出せるのは、
・初期化してない変数の中身
・変数のアドレス
・結果を利用せず、副作用も伴わない式の存在。
整数に対する四則演算を含めた「計算」は、仕様が決められているので、
同じコンパイラと同じターゲット(OS、環境)だと最適化しても
結果は変わらない。
浮動小数点に対する計算は誤差の範囲で結果が変化する可能性はある。

416:デフォルトの名無しさん
25/06/20 22:25:10.37 ykKOKnwYM.net
>>415
1. 整数の計算途中に「桁あふれ」が起きる場合はこの限りではないかも知れない。
 例えば、整数型 a に対して、a * 100 / 5 は、a * 20 と最適化できる
 可能性がある。しかし a がとても大きい場合には結果は同じにはならない可能性がある。このことに
 関して仕様がどうなっているかは知らない。
2. 浮動小数点型の変数 a に対して、(a * 100.0) / 5.0 は、
 a * 20.0 と最適化できる可能性があるが、浮動小数点型には計算誤差があるので、
 誤差の範囲内で異なる結果になる可能性があるかもしれない。
 これに対して仕様上、最適化していいかどうか走らない。
3. しかし、整数型

417:デフォルトの名無しさん
25/06/20 22:25:52.67 ykKOKnwYM.net
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
 明らかに

418:デフォルトの名無しさん
25/06/20 22:26:34.77 ykKOKnwYM.net
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
 明らかに a とは、結果が異なる。だから a と最適化される事は無い。

419:デフォルトの名無しさん
25/06/21 01:51:51.86 bIqfBqmB0.net
キミは色々と勘違いをしているからこの手の話をしたいならもうちょい勉強しよう
aが何だろうがa*100/5をa*20とはそもそも出来ないし、2.も同様
3.もaの値によっては演算の前後で値がおなじケースがある
色々あるのでいちいち書かなかったが、例えばaが10の倍数の時、aの絶対値が9以下の時、またaが列挙型だったり配列の添字だったりする時は挙動が推測出来るケースも出てくる
他にも最適化で実行時の演算をしなくてすむケースがある
演算をしなくてもaの値を変えることは出来うるし、その場合除算の代わりにいくつかの分岐や直値に変わるだろう

420:デフォルトの名無しさん
25/06/21 02:46:24.26 myS4seE9H.net
また空気読めない書き込みする。ずっと議論
が続いているけど興味ない。

そもそも実数データを表現するbit数が有限
なんだけど(doubleで8byte=64bit)、そりゃあ
場合によっては結果が違うが、実数の場合は
それほど問題じゃない。誤差の範囲内。

整数演算の方が問題。
i=32767/10000*10000の演算やったらどう
なるか?これはコンパイラの最適化の問題
じゃなくてプログラムする人が気をつける
べきことだと思う。というか、変な最適化
はしない方がいいと思う。最適化しなくても
現在のコンピュータ能力じゃあ大して時間差
は問題にならん。

それよりも行列演算でNRVOを実装してほしい。
gccの一部では実装されているみたいだけど。

421:デフォルトの名無しさん
25/06/21 02:49:22.52 myS4seE9H.net
あ、言い忘れた。演算子のオーバーロードでの話ね。

422:デフォルトの名無しさん
25/06/21 06:20:55.55 mM+iEPSf0.net
>>413
0除算は未定義動作だから、(0除算については)最適化されてエラーが出なくてもC++規格通りかね。

423:デフォルトの名無しさん
25/06/21 08:07:57.88 myS4seE9H.net
浮動小数点演算で問題になるのは情報落ち(桁落ち)。
expを指数関数としてexp(x)+exp(-x)でxの絶対値が
大きくなるとどうなるか?4倍精度演算が標準として
ほしい。fortranには昔からある。たしか南米の人が
C++で4倍精度演算ライブラリ作ってた気がする。

424:デフォルトの名無しさん
25/06/21 08:14:50.36 myS4seE9H.net
ところで、前から気になってたけど何でワイだけ
ワッチョイ出ないんだろ。メール設定ミス?それとも
プロバイダの問題?目立つから困る。

425:デフォルトの名無しさん
25/06/21 09:45:45.70 cFB8HkI30.net
signedのオーバーフローは未定義だがunsignedのオーバーフローは定義されてる
あとC/C++はfenvで浮動小数点コプロセッサのモードを切り替えられるから、それを使うつもりのコードはコンパイル時に計算されると狂ったりはする

426:デフォルトの名無しさん
25/06/21 11:27:06.14 fGhLJfIJa.net
>>424
ワッチョイと同じ役割を持つ名前一覧
1) オイコラミネオ
2) ササクッテロ
3) オッペケ
4) エムゾネ
5) スプー・スプッ

JPは知らん

427:デフォルトの名無しさん
25/06/21 11:46:04.84 pKk6RtsPM.net
>>419
あなたは馬鹿。
数学的センスが無いので、勉強しても直らないだろう。

428:デフォルトの名無しさん
25/06/21 12:00:57.87 myS4seE9H.net
>>426
レスありがとう。プロバイダが関係してるのかな

429:デフォルトの名無しさん
25/06/21 13:55:21.38 xPq+xj/ja.net
>>424
VPNでも使ってるんだろ

430:デフォルトの名無しさん
25/06/21 14:01:54.99 myS4seE9H.net
VPNオンだと5chが書き込み拒否する。まあ、いいか。

431:デフォルトの名無しさん
25/06/21 15:02:17.15 S2983oYI0.net
>>424
出てるじゃん JPって
大方逆引き不可なホストだろうからプロバイダの問題ではある
マイナーすぎて細かく設定してないだけかも知れないけど

432:デフォルトの名無しさん
25/06/21 15:34:31.30 myS4seE9H.net
>>431
レスありがとうございます。本スレの趣旨に合わないので
以後の返事は控えさせていただきます。

433:デフォルトの名無しさん
25/06/21 16:15:28.70 kXnmGuVNM.net
先の話題について、コンピュータではなく数学の世界まで振り返って考えてみると、
(1) a が実数の時
a * 100 / 100 = a
は恒等的に成り立つ。だからこの最適化は、精度を無視すれば
していい可能性が高い。
(2) a が整数で、整数としての割り算で考える場合、
a * 100 / 100 = a
は、一般的には成り立たない。
だから、a * 100 / 100 を a と最適化することはそもそも出来ない。

434:デフォルトの名無しさん
25/06/21 16:16:35.17 kXnmGuVNM.net
>>433
重大な訂正。
(2)は正しくはこう :
(a / 100) * 100 = a
は、一般的には成り立たない。
だから、(a /100) * 100 を a と最適化することはそもそも出来ない。

435:デフォルトの名無しさん
25/06/21 16:40:28.18 Kar31VLO0.net
分かったからもういいって
対人論証するようなのの意見は誰も聞かんよ

436:デフォルトの名無しさん
25/06/21 17:52:28.47 YF3X9a/V0.net
そりゃタダのコンパイラならかっこ付き計算の仕様に合わせて最適化しかできない
でもそれがAIがやるようになると、トータルで何やってるか把握して最適化するようになるから
無駄な計算は省かれるだろう

437:デフォルトの名無しさん
25/06/21 18:30:14.39 wcVxTOdx0.net
マジックナンバーだらけになりそうだな

438:デフォルトの名無しさん
25/06/21 18:49:30.35 9yAQ73mO0.net
日によって最適化の結果が変わりそうだな

439:デフォルトの名無しさん
25/06/21 19:00:56.65 kXnmGuVNM.net
浮動小数点数を「実数」と見た時に
『数学的な恒等式』ならば、最適化していい
という価値観は有るはずだ。
実際には、実数は無限精度であるのに対し、浮動小数点数は
有限精度であるから、実数では恒等式であっても、
浮動小数点数では恒等式ではないので、最適化すると結果が
少し変わってしまうことはありえる。

440:デフォルトの名無しさん
25/06/21 20:42:47.18 ea0qUnOa0.net
そんなのはまともなコンパイラはみんな分かってて-ffast-mathとかでやるかやらないか選べるけどそれが何?

441:デフォルトの名無しさん
25/06/21 21:24:08.46 myS4seE9H.net
すみません。次のコードで .5e のところの精度(少数部桁数)5
を変数precで設定したいんですけど、さっきからコンパイラに
駄目だし食らって遊ばれとります。わかる人いますか?
#include <iostream>
#include <cmath>
#include <format>

int main()
{
using namespace std;

double x, y, dx=0.5;
unsigned prec =4;

for (int i = 0; i < 20; ++i)
{
x = i * dx;
y = sin(x);
cout << format("{: .5e} {: .5e}", x, y) << endl;
}

cin.get();
return 0;
}

442:デフォルトの名無しさん
25/06/21 21:35:25.24 myS4seE9H.net
cout << format("{0: .{2}e} {1: .{2}e}", x, y, prec) << endl;
で解決しました。

443:デフォルトの名無しさん
25/06/21 22:20:34.53 07kyc98IM.net
>>440
URLリンク(kristerw.github.io)
ここには、「-fassociative-math」が今回の例に近いようだが、
同じものは載ってないと思うが。
以下は、近いが、今回のものとはまた違う :
(C1 / X) * C2

(C1 * C2) / X

444:デフォルトの名無しさん
25/06/22 12:29:48.51 4aXQSYOG0.net
・人間の思考「脳波」は頭蓋骨の外に漏れない
人間の脳は発光していた!「脳が放つ光」の観測に初成功
2025.06.19 12:00:38 THURSDAY
URLリンク(nazology.kusuguru.co.jp)
>>カナダ・アルゴマ大学(Algoma University)の最新研究で、ついにこの「脳の光」を頭蓋骨の外から観測することに成功したのです。
>>UPEは細胞の代謝活動、特に酸化反応によって発生する副産物の一種です。
>>以来、UPEはあらゆる植物や動物の細胞からも確認されており、生体内の酸化ストレスや老化、さらにはがんの診断補助にも応用が期待されてきました。
>>脳は体の中で最も代謝が活発な臓器のひとつであり、神経活動に伴って活性酸素が多く発生します。
>>チームは今回、20人の健康な成人を対象に、特殊な装置を用いた実験を実施しました。
>>被験者は真っ暗な部屋に座り、頭には脳波計を装着。
>>その周囲には、光電子増倍管(PMT)と呼ばれる極微弱な光を検出する装置が配置されました。
>>そして被験者には、目を開ける/閉じる、あるいは音楽(120BPM)を聴くといったシンプルなタスクを行ってもらい、その間のUPEと脳波の変化を同時に測定したのです。
☆>>まず、脳からのUPEは背景光(周囲の空気中のノイズ)とは明確に異なる変動パターンを持つことが判明したのです。
>>とくに後頭部(視覚野)と側頭部(聴覚野)から検出された光は、安静時でも一定のリズムと変動性を示し、他の部位とは異なるスペクトル的特徴を持っていました。
>>さらに目を閉じたときに増える「アルファ波」と呼ばれる脳波の活動と、UPEの強さが同期していることも発見されました。
>>これはつまり、脳の電気的な信号(脳波)と、化学的な代謝反応(UPE)が連動していることを意味します。
>>この成果は、従来のfMRIやPETスキャンのような「重装備で高コスト」な装置を使わずとも、非侵襲・低刺激で脳機能の状態を“光”から読み取る可能性を示すものです。
>>研究者たちはこの新しい手法を「光脳波記録(photoencephalography)」と名付けました。

445:デフォルトの名無しさん
25/06/22 12:39:57.32 gKjr8htc0.net
光コンピューティングやないかい

446:デフォルトの名無しさん
25/06/22 17:00:05.82 CnBC1yms0.net
光というのは電磁波だったと思うが。

447:デフォルトの名無しさん
25/06/22 17:03:00.89 ZWGsAnaU0.net
ニュータイプ近づいたな

448:デフォルトの名無しさん
25/06/22 18:48:20.68 /yOBM7d0d.net
スレ違い。

449:デフォルトの名無しさん
25/06/22 19:08:02.78 x4CLaAtVM.net
>>444
みたいな書き込み、完全にスレチ
このスレのみならず、板自体が壊れてしまう。

450:デフォルトの名無しさん
25/06/23 01:01:04.29 Gvg9upbV0.net
URLリンク(hissi.org)
毎回こことPythonスレだけ荒らしてるアホ

451:デフォルトの名無しさん
25/06/23 01:12:15.09 Btl+IikW0.net
統失の間でもPythonとC++は認知されてるってことでしょ
名誉ですなぁ

452:デフォルトの名無しさん
25/06/23 14:29:01.81 zsxUyp330.net
C++でpythonのライブラリを作るのが気持ちいいかなみたいな。
ん? 普通はpythonのライブラリって何で書かれているんだろう。

453:デフォルトの名無しさん
25/06/23 16:02:13.08 n3O4Zcz+M.net
>>450
Rustスレにも投稿されてたで。

454:デフォルトの名無しさん
25/06/24 09:31:18.32 17zM306Da.net
pythonのモジュールはpythonでも描けるが
もちろんCでも描けるしC++でも描ける
最近はRustで描くのが楽で良い

455:デフォルトの名無しさん
25/06/24 17:31:46.42 Sa2uRHN0H.net
Rustは良い言語かもしれんが、自分には
必要ない。

456:デフォルトの名無しさん
25/06/24 18:59:56.02 FRc1H2/gM.net
>>455
同意

457:デフォルトの名無しさん
25/06/24 19:19:29.25 8wBejQ5/0.net
>>454
なんで、AIはPythonで書かれるんだろうな

謎だな…

458:デフォルトの名無しさん
25/06/24 19:22:51.87 hfqdv+Ay0.net
Rustに静的ダックタイプ入ったら使うかどうか考える。
設計をカッチリできるプロジェクトでもなければRustはキツくない?

c++もコンセプト制約変数とか入らんかな。
変数レベルで静的ダックタイプにして、クラス継承は無くしたい。

459:はちみつ餃子
25/06/24 19:44:21.82 s2rFPvAe0.net
C++26 にはリフレクションがようやく入る見込みで、これを使えばダックタイピングのような仕組みをライブラリで実現できる。

460:デフォルトの名無しさん
25/06/24 20:15:46.49 S1fYPTVc0.net
>>457
モジュールを書く人とAIを書く人が別だからじゃろ

461:はちみつ餃子
25/06/24 20:45:25.03 s2rFPvAe0.net
AI の専門家がプログラミングの専門家というわけでもないしな。

462:デフォルトの名無しさん
25/06/24 20:49:18.38 8wBejQ5/0.net
>>460
というと?

463:デフォルトの名無しさん
25/06/26 02:55:12.43 v8FRsUWIM.net
NSCがC++を廃してRustを推しているのは、中国のUnrealEngineへの牽制か?

464:デフォルトの名無しさん
25/06/26 02:59:40.78 v8FRsUWIM.net
NSA だ。

465:デフォルトの名無しさん
25/06/26 03:19:10.72 P3qvmtvK0.net
>>463
unreal engineって、
中国が株主でしょ

466:デフォルトの名無しさん
25/06/26 07:43:46.78 NfgrBwV2p.net
UEはアメリカのゲーム企業が作ったものなんだが・・

467:デフォルトの名無しさん
25/06/26 12:38:45.11 deRGahNkM.net
スマン。中国が作ったものだとばかり思っていた。

468:デフォルトの名無しさん
25/06/26 12:41:11.49 3UJQKTFB0.net
ったく、こりだからよお

469:デフォルトの名無しさん
25/06/26 17:13:34.04 zdpAcYpu0.net
悪意のあるVSCode拡張機能を検出できる「VSCan」
URLリンク(gigazine.net)
※上記の
本体プログラミング改造で改造コードを仕込む場所や攻撃ポイントを割り出せる
※緒繼Lと下記のプャ鴻Oラムでエラ=[コードをメモャ梶[^上に無いbゥを調べて別のャvログラムを走b轤ケるとエラーャRードから親友bナきるかが割り緒oせる
などいろいろと使用可能

AIを活用した完全自律型の侵入テストツール「XBOW」がHackerOneのランキングでついに人間を抜いて1位に
URLリンク(gigazine.net)

上記のプログラムと電波障害などで生じたエラーなどでで無理やりセキュリティーほーホールを見つけれる

470:デフォルトの名無しさん
25/06/26 17:16:52.94 jAlq/lgY0.net
まず自分の書き込みにAI活用しろよって思った

471:デフォルトの名無しさん
25/06/26 18:27:21.16 o/InY5NNH.net


472:デフォルトの名無しさん
25/06/26 21:29:08.64 zdpAcYpu0.net
AndroidスマホでもiPhoneでもAIモデルをローカルで実行してチャットできる無料アプリ「Cactus Chat」レビュー
URLリンク(gigazine.net)

インターネット接続不要でAIモデルをローカル実行できる「LM Studio」にMCPサーバーへの接続機能が追加される
URLリンク(gigazine.net)

上記のAIとマクロ機能を使用すればAIのみで会話できるようになる
ボイス・トォ・スカル「神や幽霊」の声はこれで行っているのか?

マクロ機能の拡張でインターネットにも自動で書き込みが可能になる

473:デフォルトの名無しさん
25/06/26 22:43:52.27 CNaMzIfEd.net
スレ違い。

474:デフォルトの名無しさん
25/06/28 01:04:10.64 ILdMmS8aH.net
gcc4.6から4倍精度入ってるみたいですねえ。
Visual C++では入っているかな。調べてみます。

475:デフォルトの名無しさん
25/06/28 01:17:47.38 Ewd2t68S0.net
fortranで使うからね
gccはバックエンドから対応する必要がある機能を他フロントエンドのために入れるときはほぼC言語にも拡張として入れてくる

476:デフォルトの名無しさん
25/06/28 07:36:59.43 7fEtq2hP0.net
新たなクラスを作ってまえばいいのではないでしょうか。

477:デフォルトの名無しさん
25/06/28 10:51:00.28 ILdMmS8aH.net
C++23からfloat128_tがサポート予定だけど
まだ詳細は決まってなさそう
VS2022ではまだみたい。gccも13.0以降?

478:デフォルトの名無しさん
25/06/28 15:20:29.63 CPXhvy7f0.net
>>477
MSのサポート掲示板だかコミュニティBBSだでVSは128_tやる気なし(一応要望は受け付けるけど)、みたいなの読んだ気がする。

479:はちみつ餃子
25/06/28 15:55:10.80 mCCHdrx+0.net
C++23 では「そのような型があるなら std​::​float128_t として提供されることもある」というオプショナルなもので、あまりあてにならない。
URLリンク(timsong-cpp.github.io)
ハードウェアとかツールチェインとかの都合もあるだろうし。

480:デフォルトの名無しさん
25/06/28 16:00:47.16 ILdMmS8aH.net
うーむ。残念

481:はちみつ餃子
25/06/28 16:13:42.13 mCCHdrx+0.net
std​::​float128_t が提供されるときは拡張浮動小数点型 (extended floating-point type) でなけりゃならないみたいだからクラスとして定義できない。

482:デフォルトの名無しさん
25/06/28 16:59:30.25 VJLy78nc0.net
float128_tがあってもFLT_MAXは64ビットという闇

483:はちみつ餃子
25/06/28 18:19:57.03 mCCHdrx+0.net
>>482
??? float128_t と FLT_MAX にどのような関係があるのか意味が分からない。

484:デフォルトの名無しさん
25/06/28 18:26:24.23 uZW6Klue0.net
float 4バイトだろ 32ビットだぞ

485:はちみつ餃子
25/06/28 19:30:31.51 mCCHdrx+0.net
float が 4 バイトなのに 8 バイト相当な値が FLT_MAX として定義されている (言語仕様に準拠していない) 環境があるという意味?

486:デフォルトの名無しさん
25/06/28 19:40:49.68 Ewd2t68S0.net
最大の浮動小数点型を表す定数のどれかと間違えたんでしょ
__int128があってもintmax_tが64ビットのままみたいな話のfloat版のつもりだったと思う

487:デフォルトの名無しさん
25/06/29 08:57:18.64 9LYz8h1TH.net
インターネットからファイルをダウンロードするのに、現在のc界隈ではどんなライブラリを使用してるの?
vc2010あたりなら、標準で使えていたけど今でも使えるのかしら?

488:デフォルトの名無しさん
25/06/29 10:59:10.19 zQA4sk9y0.net
ちょっ質問なのですが
class Fooの中で構造体型PrivateStructがprivateな型として定義されており、
PrivateStruct型のFooのprivateなメンバFoo::m_stもある状況に対し、
Fooの外でauto&でもってPrivateStructの型を使用できて、
あまつさえFoo::m_stの値を読んだり書いたりできたりしてカプセル化神話が崩壊したんだけど
これっておま環?
(コード)
URLリンク(ideone.com)

489:はちみつ餃子
25/06/29 12:56:56.18 RnCZLFSE0.net
>>487
Windows が前提なら WinINet を使うのが素直なやり方だと思う。
規格の多少の更新などがあっても OS の側で対処してくれるからアプリケーションはリビルドする必要すらなく長期的に使えることが期待できる。

マルチプラットフォームを考えるなら Curl が楽かなぁ……。

490:はちみつ餃子
25/06/29 13:04:25.17 RnCZLFSE0.net
>>488
アクセス指定は識別子の可視性であって、間接的なアクセスも含めた一切の利用を禁止するわけではないよ。

491:デフォルトの名無しさん
25/06/29 13:14:06.51 zQA4sk9y0.net
上のコードの
>auto& st = x.refStruct(); // stはFooのprivateな型だがビルドが通る。
が識別子PrivateStructの可視性を無視してくれる理由がわからんぬ……
これ
>PrivateStruct& st = x.refStruct();
と書いたら型の名前PrivateStructの可視性がprivateなのでもちろんエラーになる

492:デフォルトの名無しさん
25/06/29 13:18:58.11 zQA4sk9y0.net
訂正orz
×: >PrivateStruct& st = x.refStruct();
○: >Foo::PrivateStruct& st = x.refStruct();

493:はちみつ餃子
25/06/29 13:37:38.54 RnCZLFSE0.net
>>491
> 識別子PrivateStructの可視性を無視してくれる理由

識別子 PrivateStruct を使っていないから。
この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。

プライベートなデータメンバ m_st だってその参照を外へ持ち出してるだろ。
外で m_st という名前でアクセスできないが m_st に対応するオブジェクトへのアクセスは (アクセス経路があるなら) アクセス指定に左右されない。
同様に、プライベートに定義した型を型名ではアクセスできないが型を使えないわけではない。

494:デフォルトの名無しさん
25/06/29 13:59:10.64 zQA4sk9y0.net
>識別子 PrivateStruct を使っていないから。
>この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。
なんで?
不完全な型の参照はエラーになるのだから
コンパイラは型推論の際Foo::PrivateStructという完全な型の情報まで突き止めているはず……
なんでFoo::PrivateStructの可視性を無視してくれるのや……
無視せずエラーにする言語仕様もあり得たはず
ていうかエラーにならないのがおま環でない証拠がいまのところ無い……

495:はちみつ餃子
25/06/29 14:09:12.19 RnCZLFSE0.net
>>494
名前に対する使用制限である旨がはっきりと書いてある。
URLリンク(timsong-cpp.github.io)

496:デフォルトの名無しさん
25/06/29 15:12:39.04 FAAHlPSo0.net
>>494
でもFoo::PrivateStructを指すpublicなtype aliasがあったらやっぱりエラーにしないで!
とか言ってきたらはっ倒すぞって感じの言語仕様やなあ

497:デフォルトの名無しさん
25/06/29 15:29:55.25 PWOccKtm0.net
プライベートメンバーの参照を返す関数を public でアクセスできる設計の方が驚き

498:はちみつ餃子
25/06/29 15:52:20.20 RnCZLFSE0.net
>>497
これ単体で見るとおかしいがプロキシパターンなどでそういう構成になることはある。

499:はちみつ餃子
25/06/29 16:51:17.70 RnCZLFSE0.net
すまん。プロクシパターンではないな。
見当違いなことを書いてた。

まあこの場合は言語機能の確認のサンプルだと思うから設計がどうこうはあまり気にしなくていいんじゃね。

500:デフォルトの名無しさん
25/06/29 19:25:35.84 TdQ2JxNKa.net
たしかに直感的には auto で private な型を推論してしまうのはヤバくね?という感覚になってしまうが
続くレスで指摘されてるとおり private な識別子だからといって外に持ち出せないわけではないので(それを禁止するほうが弊害が大きい)
そういうもんだと思ってプログラマが注意するしかないな
元々 C++ はやり方次第で言語仕様の本来の目的を外れたヤバい方法がいくらでもつかえる言語であり
どんな場面でも常にプログラマは注意を払うべきなので、そういう C++ の"性格"がこの場面でも出たというところか
こういうのがどうしても気になり完全な"性格"の言語が欲しいなら、他の言語にいったほうがよい

501:デフォルトの名無しさん
25/06/29 19:47:06.28 ivfL45vHM.net
>>489
libcurl でいいと思う。便利だし。
curlコマンドと同じように使えるはずだし。

502:デフォルトの名無しさん
25/06/30 19:44:03.19 etdu4EFd0.net
長い名前空間の扱いの質問なのですが、
例えばA::B::C::DみたいなクラスD内でP::Q::R::SのようなクラスSを使用していて
ヘッダーファイルが
namespace A::B::C {
public class D {
 void foo(P::Q::R::S& s);
};
}
みたいな感じになるのですが、実際にはこのP::Q::R::Sが非常に長く正直見苦しいです
かといってusingをヘッダー内で使うのは良くないですよね?
こういう場合にP::Q::R::Sの部分を簡潔な表記にする方法はありますでしょうか

503:デフォルトの名無しさん
25/06/30 20:47:28.37 CUK0Fuvn0.net
namespace pqrs = P::Q::R::S
でいいんじゃない?

504:デフォルトの名無しさん
25/07/01 21:41:31.12 W7Fp4vWi0.net
Sしか使わないならusing P::Q::R::S;

505:はちみつ餃子
25/07/01 22:22:06.69 kHEih0Y20.net
>>504
using P::Q::R::S; したらもしも using namespace A::B::C; したときに P::Q::R::S も探索対象になってしまう。
使う側に余計な影響を与えないようにするには別名をつけるほうがより良い。

506:デフォルトの名無しさん
25/07/03 00:24:37.09 ye5zZInN0.net
エンベデッド分野は今でもC/C++が主流なの?
AIに任せられない分野だから生きのこれそうで気になっておりまする

507:デフォルトの名無しさん
25/07/03 09:26:35.93 q23h/8z8a.net
良いんじゃね

508:はちみつ餃子
25/07/03 11:06:49.67 4Hn86Ej50.net
>>506
組み込みシステムも多様なので性質や規模によるでしょ。
リアルタイム性が重要なところでは C/C++ は主流のままだと思うけど、プロジェクト全体が C/C++ だけで構成されることは少なくなるんじゃない?

509:デフォルトの名無しさん
25/07/03 11:57:31.86 0Ka09OV10.net
リアルタイム性はOSがやることだし
言語関係ないよ

510:デフォルトの名無しさん
25/07/03 12:22:21.27 dQk6sKVB0.net
Javaや.NETはGCでストップ・ザ・ワールドが発生するからリアルタイムに弱いらしい
最近は目標停止時間を1ms以下に抑えるGCもあるけど、あくまでも目標であって保証ではないからね

511:デフォルトの名無しさん
25/07/03 15:27:43.14 d0nwmVKl0.net
>>509
イベントスレッドでIOされてもOSがなんとかすると思ってんの?

512:デフォルトの名無しさん
25/07/04 08:50:43.54 fF3rQ1JLa.net
組み込み
リアルタイムOS
これほど曖昧な言い回しは他に無い

513:はちみつ餃子
25/07/04 10:17:03.12 wZ441BSd0.net
>>509
リアルタイム性が重要なところというのはまさにそのリアルタイム OS のことで、それらを書くのに C/C++ が主流という話なんやで。
そんで既存の OS を使う場合でも次にアプリケーションを用意すれば動くというわけではなくて、組み込みシステムなら大抵の場合にデバイスドライバも書かなければいけないし、 OS が面倒みてくれる範囲は小さい。

低レイヤの整備がすでに整っている状況ならアプリケーションはもうちょっと言語の選択肢はあるかもね。

514:デフォルトの名無しさん
25/07/04 10:58:10.60 8a61AjkK0.net
リアルタイムOSでないOSで、リアルタイム性重視ならそうだが
リアルタイムOSで作るなら言語は何でもいい

515:デフォルトの名無しさん
25/07/04 10:59:28.16 8a61AjkK0.net
例えば24時間365日止まってはいけない産業用制御なんて
C++でも何でもない

516:デフォルトの名無しさん
25/07/04 11:09:00.86 7dTC+3QP0.net
シェルで済むならシェルにしなさい。(UNIX)

517:デフォルトの名無しさん
25/07/04 11:13:55.32 lC93JhvQ0.net
言語なんでもいいって?
リアルタイムOSってそもそも言語の選択肢少ねーだろ

518:デフォルトの名無しさん
25/07/04 11:19:04.05 lC93JhvQ0.net
>>512
いうほどあいまいか?
せいぜい中身がLinux、Windowsでアプリのインストールも自由みたいなやつだけだろ

519:デフォルトの名無しさん
25/07/04 20:28:14.57 wNUogzY00.net
>>511
ちょっI/Oしたらやっぱリアルタイム性に影響出るの?!
んまー秒単位でwaitして帰ってこないみたいな極端なI/Oポートがあったらそうかもしれないが

520:デフォルトの名無しさん
25/07/04 20:39:26.88 wNUogzY00.net
>24時間365日止まってはいけない産業用制御
冗長構成かフェイルオーバーするような枠組みとしての取り組みが第一優先な希ガス……
ソフトウェアーの冪等性により同じバグが同じタイミングで発生して冗長構成が無意味化するする危険性については
十分テストしてバグを撮ったのちに起動タイミングをずらすなどの工夫を行えばポアソン分布の同時確率か何かに従って無視できうる(と思う
さすがに原子炉の制御とかだとプロセス単体も形式検証して他分野よりもっと十分検証するらしい(間接伝聞

521:デフォルトの名無しさん
25/07/05 12:14:15.08 JEWbe+UQ0.net
そんなレベルはラダー図で書くやろ

522:デフォルトの名無しさん
25/07/05 12:31:12.20 yj3snSzGM.net
というかリアルタイムOSの話から関係ない24/365システムの話を出すあたりよくわかってないことを雰囲気で話すタイプの人でしょ

523:デフォルトの名無しさん
25/07/05 20:19:54.08 iY4IPiMb0.net
>>521
C++ではないわな

524:デフォルトの名無しさん
25/07/06 06:14:16.80 B20RUTJT0.net
質問なのですが
ケースA) std::stringstream ist("A B"); char c1, c2, c3; に対し、ist >> c1; ist >> c2; ist >> c3; とすると
ist >> c2 は正常に読めて、ist >> c3 を実施した時点で!ist.good()かつist.eof() となってgetc()と類似のEOF検知挙動なのですが
(ちなみに読み取った文字は c1='A'、c2='B'。c3の読み取りは行われない

ケースB) std::stringstream ist("A B"); std::string s1, s2, s3; に対し、ist >> s1; ist >> s2; ist >> s3; とすると
ist >> s2 を実施した時点で早々に!ist.good()かつist.eof() となって挙動が相違し
(ちなみに読み取った文字列は s1="A"、s2="B"。s3の読み取りは行われない

ケースC) しかしBの後に空白を追加してstd::stringstream ist("A B "); とすると、
ist >> s2 は正常に読めて、ist >> s3 を実施した時点で!ist.good()かつist.eof() となってgetc()と類似のEOF検知挙動になる
(ちなみに読み取った文字列は s1="A"、s2="B"。s3の読み取りは行われない

となってケースB)とケースC)で共通に使えるような最終要素まで読み取り完了判定ロジックが無く
std::istream神話が崩壊したんだけどこれっておま環?
一体どうすれば……orz

525:デフォルトの名無しさん
25/07/06 06:16:00.70 B20RUTJT0.net
確認用サンプルコード:
URLリンク(ideone.com)

526:デフォルトの名無しさん
25/07/06 06:47:52.68 B20RUTJT0.net
とりま上のコードからフォークしたソースコード
URLリンク(ideone.com)

 parse_as_string_with_common_logic(std::istream& is, std::string& s, bool& bErr)
みたいな判定処理にしたらケースB、Cを共通に扱えるような印象
なのですが正しくはどうすればよいかわからん……

527:デフォルトの名無しさん
25/07/06 07:26:05.90 oIAQiRlj0.net
一般的な話ならchar以外の>>で一貫した挙動を期待するのに無理がある
期待した文字が来なかったらungetするかどうか?ファイル最後の改行をどうするか?シグナルが来たら?とか色々あるし
ケースBで言えば"B"の後に文字が続いていればs2に含まないといけないのだから内部的にはケースAで言えばc3まで試し済みの状態
EOFフラグを見るのではなく例外で受け取ったほうが確実

528:デフォルトの名無しさん
25/07/06 10:18:34.40 RFZXbMVga.net
ケースB、Cを共通に扱える
ist.eof()でいいやん
Bが一回余分にループするのは気持ち悪いけど
気にしたら負け

529:デフォルトの名無しさん
25/07/06 10:53:22.37 14zTNASB0.net
普通はoperator bool(または fail())を使う

530:デフォルトの名無しさん
25/07/06 10:56:09.61 B20RUTJT0.net
>>527
だいたいわかりた
 is >> s
ライブラリの「>>」の仕様的にsが任意のクラスで有り得るから、
例えばsが複素数クラスで2つの要素を読み取るブツなのに対し要素を1つだけ読み取れなかった場合、
みたいなのが生じ得るがis.eof()ではそこまで表現できない故にライブラリ側では
char以外の一般のケースについて責任を持たないというと理解すた、
従って、test_parse_as_string_with_common_logic(const char* szInput, bool& bErr)を
charの読み取りによってeof()判定するように直したわ
これならiostreamの正当な使い方だけで構成されておりかつ目的を果たせているはず……
URLリンク(ideone.com)

531:デフォルトの名無しさん
25/07/06 11:00:55.07 B20RUTJT0.net
>>528
>Bが一回余分にループするのは気持ち悪いけど
いきなりis >> s してその直後のeof()を当てにするロジックである限り、
リンク先のケースBの挙動となり、最後の要素に引き続く空白文字がないとき
最後の要素が入力ストリームにあるのに受け取れないというもっと深刻な事態となる以下略

>>529
operator boolはis.good()と同じはず……
なおかつそれ単独では(is >> sのsがchar以外のとき)ケースBの解決になんね

532:デフォルトの名無しさん
25/07/06 11:06:26.76 B20RUTJT0.net
ごめoperator boolは!is.fail()やった……orz

533:デフォルトの名無しさん
25/07/06 11:24:16.88 B20RUTJT0.net
二転三転してすまんこ考えを改めたはサーセン……orz
入力ストリームはシリアルポートみたいな途中で入力がブチ切れる危険性があるブツである
こともあるから、
 ケースB) (空白) (非空白文字列の期待する全体)
 ケースB') (空白) (非空白文字列が受信タイムアウトにより途中で切れたもの)
の区別が!isになったというだけでは区別がつかない。一方、
(空白) (非空白文字列) (空白)
まで受け取ったら、(非空白文字列) がタイムアウトにより途中で切れたものでないことが確実となりワカル
故に、ケースBやB'みたいな条件を扱うこと自体がライブラリの仕様想定外なのかもしれん……
通常のテキスト読み込みでは行末に改行文字(空白文字のうち)が1文字以上あるから、この枠内で話が収まる。

Unixみたいに改行文字が '\n' 1文字だけな環境で、改行文字を読み飛ばして
呼び出し元に返さないgetline()みたいなやつで読んだ結果を
istringstreamしようとするとケースBが顕在化するが、
この場合は強制的に末尾に空白文字を付けることができうる
そうすればケースBは発生しない(ただし空白文字を付け忘れるとバグ

534:デフォルトの名無しさん
25/07/06 11:56:43.72 wbQZP2jZ0.net
iostreamなんかをテキストの厳格なパースなんかに使わなければならない理由から考え直した方がいい

535:デフォルトの名無しさん
25/07/06 12:20:19.64 RFZXbMVga.net
末尾で改行無しでeofが来るファイルは多い

536:デフォルトの名無しさん
25/07/06 12:43:07.86 B20RUTJT0.net
>>529
ゴメ operator std::istream::bool() か std::istream::fail() だけでとりま解決したわスマンカッタorz
URLリンク(ideone.com)

オンメモリのストリームである std::istringstream であっても>>533のケースB'に当たるケース
(オンメモリなので非空白文字列でデータが終わっている場合)においてbadbitがセットされるっぽい
この挙動がおま環でないかどうかはわからん……

537:デフォルトの名無しさん
25/07/06 12:47:26.46 B20RUTJT0.net
>>534
いまさらlex的な処理をgetc()で手で書いたりstrtok()に戻ったりしたくないし……

538:はちみつ餃子
25/07/06 13:40:09.19 VHUnBvW80.net
パーサコンビネータ的なものを先に作るのがモダンな方法だが……。
汚い部分を抽象の向こうに押し込めるだけなので汚さが無くなるわけではない。
小さい規模だと愚直な方法が楽だったりするよ。

539:デフォルトの名無しさん
25/07/10 15:17:59.65 pWdjbLc50.net
C++を勉強して思ったのが
C++って基底クラスをリストに登録させて
派生クラスの機能をひたすら実行させることに特化してるように思うのだけどこの考え方で合ってる?
要はリストありきな感じ

540:はちみつ餃子
25/07/10 15:54:02.04 UMLMi9p20.net
>>539
ゲームのフレームワークでは全てのエンティティを登録してそれに対する更新を繰り返すというモデルがありふれているが、 C++ 的にそれが普通というわけではない。

541:デフォルトの名無しさん
25/07/10 16:45:53.90 1drjG1ps0.net
>>539
一度デバッガで実行をトレースしてみ?

542:デフォルトの名無しさん
25/07/10 18:55:50.32 y21Xxg220.net
>>508
な、なるほど
何にしても、この先生きのこるには C/C++ は必要そうだね
Py や JS なんかだと若い衆がどんどん来るから負けそうだし・・・

543:デフォルトの名無しさん
25/07/10 21:11:59.82 pWdjbLc50.net
>>540-541
ありがとうございます
リストを自作するなりstd::listを使うなりして
printfみたいな文字出力をする時も、出力部分をタスククラスにぶっこんでラッピングして
出力は派生クラスでオーバーライドしたc->draw();みたいなのに任せる、というのはゲーム専用で他ではあまりされないんですね

544:はちみつ餃子
25/07/11 01:51:13.39 /nWuXYnL0.net
C++ は設計理念のひとつとして「人に何かを強制しない」というのを挙げていて、やりたいように書けることを重視してる。
同じパターンでプログラムを書いているように感じるなら単にあなたがそのやり方しか知らないだけ。
分野ごとに大枠ではやりやすいパターンが定着していたりはするので、ひとつの分野だけ見ていると頻出パターンがあるように見えることはあるかも。

545:デフォルトの名無しさん
25/07/11 11:58:09.09 nUxw0t1Z0.net
BASICも同様の理念で作ればいいのに

546:デフォルトの名無しさん
25/07/11 12:28:00.28 36pXyECQ0.net
>>544
Z世代にはRuby on RailsやRustのほうが良いかもしれませんね

547:デフォルトの名無しさん
25/07/11 14:36:44.91 zLrVPFvnd.net
>>543
RustのDisplayやDebugなんてまさにそれだが

548:デフォルトの名無しさん
25/07/12 13:34:42.02 Y1veRsrW0.net
C++でデフォルトコンストラクタで確保したリソースだけデストラクタで破棄したくてコピーコンストラクタやコピー代入ムーブコンストラクタやムーブ代入で得たリソースはデストラクタで破棄させたくないときどうする?
rustみたいな所有権システム必要になるんですか?

549:デフォルトの名無しさん
25/07/12 14:19:56.77 tjRcyRc80.net
なんでそんなことが必要なのかわからないけど、破棄するかどうかのフラグを持っておけばいいんじゃないの?
設計から見直した方が良いようなきがするけどw

550:デフォルトの名無しさん
25/07/12 17:03:35.88 BGsI/m1X0.net
>>548
俺もなんでそんなことが必要なのかわからないけど、pip使ってデフォルトコントラスタのオーナーだけにshared ptrでリソース管理させるとか?

これだとバグが怖いから、素直にshared ptrでリソースを共有したほうがいい気がする。

551:デフォルトの名無しさん
25/07/12 17:24:13.44 1YAX70Df0.net
ゲームプログラムをマルチスレッドにするとき、何をマルチスレッドにするの?
ストレージのロードとかはともかく

552:デフォルトの名無しさん
25/07/12 18:45:10.30 /RtKayKia.net
マルチスレッドにしたいものをマルチスレッドにする

553:デフォルトの名無しさん
25/07/12 19:12:52.47 LUVzIFWA0.net
遠景のテクスチャのロードなんかは別スレッドかな?
当たり判定などのロジックは遅延なく1フレーム16ミリ秒以内にやらなきゃいけないのでメインスレッドでやるしかない
ゲームでマルチスレッド使うのって難しいよね

554:はちみつ餃子
25/07/12 20:02:23.86 5KyGwfre0.net
排他処理が入ると並列化の恩恵がだいぶん減るので高速化の意図でマルチスレッドを使うなら排他が不要な部分を見つけるのが第一だね。

メモリなどの各種のリソース管理の後始末を別スレッドに任せるという例も聞いたことはある。
デストラクタが起動するとサブオブジェクトのデストラクタも連鎖的に起動するからワンフレームの時間が限られている状況では間に合わないということも起こる。
だからデストラクタは後始末が必要なリソースをテーブルに登録するだけにして、別スレッドが実際の後始末をするってことね。
もう使うことの無いリソースだというのは分かってるから排他は少なくてすむ。
(ヒープメモリの管理テーブルはスレッド共通だから排他がゼロとはいかないと思うけど。)
後始末が少しくらい遅れてもどうということはないし。

555:デフォルトの名無しさん
25/07/13 11:30:27.40 WDtYO/xJ0.net
まあ、
アクションとか以外の、1/60秒で同期させなくていい処理ですかね…
遠くのPhysXの物理とかもできるのかな…

数年ぶりで、レイトレーシングとか未経験だわ…

556:デフォルトの名無しさん
25/07/13 11:36:28.87 WDtYO/xJ0.net
>>554
コンテキストスイッチとか気にしないといけないですね…
PlaystationとXboxとPCゲームで、それぞれに最適化とか大変そうですね…

557:デフォルトの名無しさん
25/07/13 21:38:10.94 e/4c/Agi0.net
・人間は犯罪を起こす種族と言い切っている
地球はすでに丸見え、レーダー電波で宇宙人に居場所をさらしている
公開: 2025-07-13 21:00
URLリンク(karapaia.com)
 >>明らかに人工的なもので、200光年以内にある知的文明なら、地球の場所を把握できる可能性が高い。
 >>アレシボ天文台のような超高感度の望遠鏡を使えば、理論上は6万光年先からでも地球の電波を検出できるとされている。
 >>に宇宙空間で“丸見え”の状態にあり、その状況は75年前から続いているのだ。問題は、彼らが友好的な文明であるという保証がまったくないことだ。
★>>可能性としては、(我々人間のように)きわめて敵対的かつ侵略的な種族であるケースも十分にあり得る。

558:デフォルトの名無しさん
25/07/14 12:26:06.28 D5VD7WG/0.net
GPT-4.1超えの中国製AIモデル「Kimi K2」が無料公開される、複数のテストでGPT-4.1やClaude 4 Opusを打ち負かしエージェントタスクもこなす
2025年07月14日 11時10分
URLリンク(gigazine.net)
>>Kimi K2はベースモデルの「Kimi-K2-Base」と事後学習済みモデルの「Kimi-K2-Instruct」の2種類に分かれてリリースされています。以下の図は「Kimi-K2-Instruct」「DeepSeek V3」「Qwen3-235B」「GPT-4.1」「Claude 4 Opus」「Claude 4 Sonnet」「Gemini 2.5 Flash」のベンチマークスコアを並べたものです。Kimi-K2-InstructはすべてのテストでオープンモデルのDeepSeel V3とQwen3-235Bを超えるスコアを記録し、一部のテストでGPT-4.1やClaude Sonnet 4などの商用モデルに勝利しています。
◇上記サイト内にダウンロードリンクがある


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch