C++相談室 part157

■ このスレッドは過去ログ倉庫に格納されています
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
677デフォルトの名無しさん
垢版 |
2021/10/17(日) 13:26:48.31ID:GKP6XQtx
ファイルは当然文字
678デフォルトの名無しさん
垢版 |
2021/10/17(日) 13:27:18.36ID:GKP6XQtx
じゃなくて
ファイルは当然バイトね ごめん、、
2021/10/17(日) 13:44:25.91ID:mjSP52s5
>>676
時代背景も考えずに中途半端とか言われても…
2021/10/17(日) 13:48:20.62ID:cds0CTiX
まぁ、欧米の毛唐どもにもようやく必要性が理解できたchar8_tの導入が進めば文字コードはutf8に統一されていくとは思うけど、
utf8はutf8で冗長コードの問題があるからな…その辺のルールも統一しとかないとバグが量産されることになるな
2021/10/17(日) 13:54:50.76ID:XrR+wpGu
2021年になってもテキストファイル読み込みの話をしなければならないC++の哀しさ
2021/10/17(日) 13:58:16.96ID:7C23oe5i
ifstream とか
#include <iostream>
とか観るとダサいなーとしか思わない
2021/10/17(日) 14:06:15.29ID:XrR+wpGu
Windowsのcode pageのような列挙型と文字セット判定クラスがC++で標準化されてないとテキスト読み込み処理を標準化できないでしょ
文字セット判定クラスは既存の判定ライブラリも標準インターフェースを介して使えるように的な
2021/10/17(日) 21:21:43.52ID:X4C5aaqV
すまんもうPythonでよくね
2021/10/17(日) 21:41:38.58ID:iZHfLY3S
>>684
せやね
2021/10/18(月) 07:17:36.06ID:SjUVJOBm
C++ではなくCを使うというならまだそいつなりに筋が通る可能性があるが
C++でfgetsにしがみつくのはC++のライブラリについてこれなかっただけの
無能の中の無能だ
2021/10/18(月) 07:27:56.24ID:guTQadjs
C++でファイル操作にcstdio(というかFILE*)を使うべきだと宣うなら
せめてその場合の例外安全性くらい論じてくれないと話にならな
2021/10/18(月) 07:44:19.97ID:G16mKgJ/
>>658
Create !
File !
Mapping !
なんでテキストファイルを読み込むだけのためにそんんあ牛刀(しかも移植性が乏しい)を使わねばならんのじゃ……
だいたい標準ストリーム(istream/ ostreamでも良いが)との結合はどうするんじゃ……
std::streambuf派生クラスとか自力で書くんか……

やっぱ頭にうんこ詰まってる人からはうんこしか出てきませんね……
2021/10/18(月) 07:47:04.30ID:G16mKgJ/
>>686
fgets()の使用はC++についていけなくてしがみついているのではなくて、
天才の判断である
2021/10/18(月) 07:52:03.70ID:SjUVJOBm
>>688
あーおまえさん、あのAPIをベアで使ってるのか
ご苦労なこったな
C++使ってんのにクラス化って発想ねえのか
2021/10/18(月) 07:56:09.77ID:G16mKgJ/
>>687
>例外安全性くらい論じてくれないと
cstdioの仕様は突っ込んで調べてはいないがファイルの読み書きに関して
例外をスローすることがあるとしたら改悪で大層な失敗ライブラリとしか言いようが無い

ていうか例外安全というのは眉唾な概念でありまして、
40TBまでメモリを食いつぶしたら例外をスローするが
39.9999TBまでメモリを食いつぶしても何も起きないというコードは
システム全体の動作を担保できておらず設計したとは言えない
もっと定量的にプロアクティブな処置を講じるべきで、システムの正常動作を例外に依存させる設計は無い
2021/10/18(月) 07:57:48.58ID:G16mKgJ/
>>690
ますますのうんこ発言ご苦労
で、標準ストリーム(istream/ ostreamでも良いが)との結合はどうするんじゃ……
2021/10/18(月) 08:00:37.32ID:pufTxU/Z
標準じゃないとか言うから突っ込まれてるのに
2021/10/18(月) 08:13:52.41ID:G16mKgJ/
この議論の中で自作クラス推しはポエミーすぐる
やっぱうんこ製造機な人は仕方が無い
2021/10/18(月) 08:23:54.90ID:SjUVJOBm
>>892
おまえさん他言語への移植がどうたら言ってた?
2021/10/18(月) 09:00:47.23ID:SjUVJOBm
C++でクラス作るなって
Cで関数作るなに匹敵するすげえ主張だな
最長不倒main関数とかw
2021/10/18(月) 10:44:23.86ID:Qq+Ry0m8
Cだけやたら詳しくてクラスの仕組み知らないウン古参とか居るからな
2021/10/18(月) 11:01:27.83ID:I7uU9DyP
MISRA-C 縛りの組み込み屋とかな
2021/10/18(月) 11:20:29.21ID:PPwA/bGd
C++からCにソースコードを移植せざるを得ないことがあるから、Cプログラマでもクラスやテンプレートの知識は必須でしょ
2021/10/18(月) 11:27:00.40ID:CHllzYZP
cの場合ファイルでクラスを実現するわけだけど、その縛りがある方がきれいになるよね
2021/10/18(月) 11:35:56.70ID:cow76Y8p
twitterでCやC++を検索したい時、検索ボックスに
(C 言語) OR cplusplus OR cpp OR @i -@i lang:ja
と入れると割りといいことが分かった。
さらに、検索ボックスの右にある「…」のボタンを押して「検索を保存」しておくと、この検索文字列が勝手に消えない。
2021/10/18(月) 13:03:36.15ID:nWV7c8cM
::fgetsってstd::getlineに対するメリットある?
2021/10/18(月) 13:40:59.86ID:inWWc53E
getlineがそもそも遅くてダメ
fopenからのfread一択
2021/10/18(月) 15:14:30.34ID:PPwA/bGd
$ man 3 getline
...
BUGS
There are no wide character versions of getdelim() or getline().
705デフォルトの名無しさん
垢版 |
2021/10/18(月) 15:52:23.39ID:r9t2S6+p
>>703
fread速くて素敵
2021/10/18(月) 15:58:38.18ID:bmSCfWZq
fopen/fread/fseekだと2GBを超えるファイルが扱えないよね
2021/10/18(月) 16:22:14.95ID:SjUVJOBm
2G超のファイルはもう珍しくもなくなったな
2021/10/18(月) 19:03:20.24ID:PPwA/bGd
>>706
fread()は2GB制約なく扱えるのでは?
2021/10/18(月) 19:10:28.52ID:SjUVJOBm
狭い視野でイキッてるヒヨッ子
2021/10/18(月) 19:38:54.73ID:bmSCfWZq
>>708
環境によってはそういう実装もあるだろうけど、保証はされていないはず
実際MSVCのランタイムとかはダメでしょ
2021/10/18(月) 19:53:44.83ID:wnQbvQnY
2GBってOSの制限じゃなくて?
2021/10/18(月) 19:56:34.12ID:PPwA/bGd
>>710
「ダメでしょ」っていう無駄な煽り質問じゃなくて、fread()の制約について触れたブログのURLとか教えてもらえますか?
2021/10/18(月) 20:12:41.63ID:SjUVJOBm
MSVCつってんだろ
そっから自分で調べろよ
2021/10/18(月) 20:19:55.17ID:PPwA/bGd
>>713
見つからないンだわ
2021/10/18(月) 20:20:14.22ID:q3S383yy
>>699
>C++からCにソースコードを移植せざるを得ないことがあるから、

いまどきそんなのある?思いつかない。
2021/10/18(月) 20:40:37.41ID:guTQadjs
>>691
違うよファイル読み込み以外の場所での例外発生時にFILE*をリークさせないための設計の話だよ
君が何も考えてないのはよく分かった
2021/10/18(月) 20:48:11.38ID:9/kwvMtE
>>711
今時のOSで2GBの壁とか無いでしょ
2021/10/18(月) 20:52:27.87ID:PPwA/bGd
書いてから気づいたけど >>714 は、見つからねンだわ、のほうがよかった
719デフォルトの名無しさん
垢版 |
2021/10/19(火) 00:01:14.73ID:L2ZQN19z
MSVCのランタイムでfread()が2GB越えファイルを扱えないって話のURLはどこですか?
2021/10/19(火) 00:34:16.59ID:FM0S3WDg
>>716
スコープを抜けたらファイルをクローズしてくれるから安全、と考える
藻前の考えが浅いのもまた明らかだ
システム的にファイルをぶち切られること自体が致命的だったら?
また、クローズがエラーになったとき何が起きるか
(ただクローズするだけのクラスならエラー通知先は無い。例外を飛ばしたら即パニック

というわけで実用的なリソースリーク対策はコードの追加を伴うから
fgets()にリーク対策するのと言うほど違いが無いワケ
2021/10/19(火) 00:41:16.25ID:FM0S3WDg
例外安全はやれるならやった方が良いのは認めるが
他人様が作ったライブラリの中に生ポをメンバにもつクラスがあったら穴ができる
まだこれぐらいなら静的解析で発見できるかもしれんが
上で述べたようなcloseのエラーチェックのスキップとか循環参照とかは機械的検出が難しい
例外安全に予期せぬ事象が起きたときのセーフティーネット以上のことを気体するのはソフトウェア工学的ではない

というわけでやっぱfgets()を使いつつ例外を起こさないように書くのに比べて言うほどマシでないワケ
2021/10/19(火) 02:03:24.24ID:2It6fcyB
君が例外安全というものについて何一つ知らない事はよく分かった
無知は罪じゃないから今から勉強し直そうね
知ってるふりしていい加減な付け焼き刃の知識を振りかざすのは恥ずかしいだけじゃなくてお客や同僚に迷惑を掛けるからね
2021/10/19(火) 02:48:34.85ID:gI621CUN
コードや証拠もなしに噛み合わない話の空中戦とかするくらいなら反論しなくていいから黙ってよう
どちらが正しいかはみんな分かっているのだから
2021/10/19(火) 06:05:15.24ID:KuG8Rhix
了解
2021/10/19(火) 06:18:55.46ID:/lTW/4j8
cout << sizeof ftell(nullptr);
2021/10/19(火) 07:21:43.01ID:N+EpsguK
自分で試す能力がなくてURL乞食しとんのか
2021/10/19(火) 07:46:29.59ID:FM0S3WDg
馬鹿は正当性を定義も証明もできない事柄に正当性を見出してしまう好例
例外安全に予期せぬ事象が起きたときのセーフティーネット以上のことを気体できないというのが真実
それが証拠にいい加減でない知識として>>721以外の何があるのか>>722は示せていない

起こることが既知なら対処を平にコードに書けば良いのに
コードに明示されておらず、検証もしきれない実行パスをボコボコ作っといて安全と言い張る神経、
2021/10/19(火) 07:57:14.86ID:FM0S3WDg
ていうか知能の問題かもしれん……

>どちらが正しいかはみんな分かっているのだから
衆愚の言い草
「何が」例外安全なのかきちんと定義してから出直してホスイ、
2021/10/19(火) 08:04:24.05ID:N+EpsguK
暴れてるやつRAIIって発想もないようだしな
2021/10/19(火) 08:46:39.19ID:T9srRJav
>>726
Windows環境自体がないのでは
2021/10/19(火) 08:51:30.49ID:gI621CUN
5chは煽ると答えが返ってくるという都市伝説があるらしい
732デフォルトの名無しさん
垢版 |
2021/10/19(火) 10:31:03.98ID:L2ZQN19z
バグ報告する場合は再現条件を提示する責任がある
再現できなければ「おま環」で放置される

もしかしてこのスレの住人は、立民とか共産党の支持者だったりするの?
挙証責任って概念を知らないかな
モリカケ・桜を見る会問題にのめりこむような人は技術系の職業に向いてないから転職したほうがいいね
2021/10/19(火) 10:37:08.97ID:JueBMEYA
最後の一文、それを断言できるのはその問題にのめりこんでる証拠のような・・・
734デフォルトの名無しさん
垢版 |
2021/10/19(火) 10:38:50.31ID:L2ZQN19z
お前は泥棒をしたのだから泥棒したことをお前自身が証明しろ、と言いがかりをつけ続ける取調官とか怖いだろ
それと同じことを一部の本スレ住人や立民共産信者は言ってるわけだよ
2021/10/19(火) 10:46:13.46ID:ZI1Nh3C2
モリカケ・桜を見る会問題にのめりこんでいない人は
突然無関係のスレでモリカケ・桜を見る会問題の話題を出さないからね
常に意識している(のめりこんでいる)から技術系のスレで政治的な話をしてしまう
736デフォルトの名無しさん
垢版 |
2021/10/19(火) 10:55:44.60ID:L2ZQN19z
陰謀論など思い込みの激しい人は正義感でやってるから周囲の忠告に耳を貸さない
信者同士が共鳴しあうエコーチェンバー効果
2021/10/19(火) 11:12:58.88ID:ZI1Nh3C2
「最近、この沼にはまって抜け出せなくなる人が多いんだよ、困ったものだね」と言いながら沼にはまっている人↑
2021/10/19(火) 11:22:09.22ID:L2ZQN19z
MSVCでfread()が2GB以上のファイルを扱えないことを証明してくれさえすればいいんだよ、簡単だろ?
2021/10/19(火) 11:31:07.37ID:L2ZQN19z
自分は雑なバグ報告しておいて、相手には執拗に問題解決を迫るキチガイとかイヤだろ?
2021/10/19(火) 11:40:48.93ID:gI621CUN
そもそもfreadと何をどんな環境で比較して結果どうだったなどの証拠がない件
2021/10/19(火) 12:09:53.53ID:ZI1Nh3C2
正直興味のない話なので関わらなきゃいいじゃんって言われるだろうけど
「相手には執拗に問題解決を迫るキチガイとかイヤだろ?」と行っている本人が「証明してくれさえすればいいんだ」と迫っているところを見る限り
やっぱり本人も沼に入っているのに気づいていないんだな、と感じる小雨が降る今日この頃
2021/10/19(火) 12:19:05.04ID:L2ZQN19z
いまさら何言ってんだ?
このスレは、ダニング=クルーガー効果でイキったバカをからかうためのスレだぞ
2021/10/19(火) 12:35:47.82ID:N+EpsguK
都合の悪いものは見えないらしいな
2021/10/19(火) 12:50:43.47ID:gI621CUN
スレタイトルのとおりC++に関する相談をするためのスレですよ
ID:L2ZQN19z7 は他人を煽るためだけに書き込んでるように見えるので少し風当たりが強くなってるだけです
745デフォルトの名無しさん
垢版 |
2021/10/19(火) 13:20:26.19ID:L2ZQN19z
マイクロソフトのような大企業がfread()の致命的な不具合を永年にわたって野放しにするはずがないという常識や判断力すらない人は、いろんな陰謀論にハマるだろうね
ご本人はそれはそれで楽しい人生なんだろうけどIT技術者としてはどうかなって話
ま、反ワクチンの医者もごくまれにいるから、陰謀論にハマる人はどんな業界にもいるんだろう
746デフォルトの名無しさん
垢版 |
2021/10/19(火) 13:25:05.49ID:L2ZQN19z
ビル・ゲイツがワクチンの「狂った陰謀論」を改めて否定 | Forbes JAPAN
https://forbesjapan.com/articles/detail/39513
2021/01/28 12:30

マイクロソフトの共同創業者でビリオネアのビル・ゲイツは、パンデミックを受けてSNS上で拡散した、彼に関する陰謀論の多さに「非常に驚いている」と述べ、ワクチンの普及の妨げになりかねない誤情報への懸念を示した。

ゲイツは1月27日のロイターの取材に、彼と米国のコロナ対策のトップであるアンソニー・ファウチ博士についての「狂った陰謀論」は、パンデミックに対する恐怖心とソーシャルメディアの台頭により引き起こされた可能性が高いと述べた。

パンデミックに関する最も目を引く陰謀論のいくつかは、ゲイツが「世界の人々にマイクロチップを埋め込むためにワクチンを活用しようとしている」という、根拠のない主張に基づいている。

ゲイツは、人々が本当にこれらの陰謀論を信じているのかどうかを知りたいと話した。「それは、人々の行動をどのように変えるのだろう? そして、我々はどのようにして、これを最小限に抑えるべきだったのだろう?」と、彼は問いかけた。
2021/10/19(火) 13:25:23.12ID:4nkSMT7f
Microsoft、不具合修正一年くらいかかったよ
2021/10/19(火) 13:53:44.09ID:emsejTNf
MSは直らんなあ
google よりはマシかもな
2021/10/19(火) 15:13:15.33ID:gI621CUN
単発IDは自演の可能性ありますね
750デフォルトの名無しさん
垢版 |
2021/10/19(火) 19:19:45.97ID:GtxXqLyf
2000年ごろのLinuxユーザーなら、ゲイツがワクチンにウィルス仕込んでると大騒ぎしてただろうけどな。
751デフォルトの名無しさん
垢版 |
2021/10/19(火) 19:24:26.03ID:GtxXqLyf
>>732
ご指摘の動作は弊社ソフトウェア製品の問題点であることが確認されました。
引き続き調査を行います。
進展状況はID2273405でご確認できます。
今後も弊社製品ご愛顧のほどよろしくお願いします。
752デフォルトの名無しさん
垢版 |
2021/10/19(火) 19:28:33.46ID:GtxXqLyf
>>732
「証拠はあんのか?おお〜ん?」と言ってる晋三が暴力団に見える。
証拠がなくたって傍目に明らか。
なんで5000円でスイートに泊まれるわけない。
嘘つかずにごめんなさいしたら良かっただけ。
753デフォルトの名無しさん
垢版 |
2021/10/19(火) 19:52:06.47ID:L2ZQN19z
>>752
5Gにつながるためにもちゃんとワクチン2回打てよ
11月になったらワクチン接種会場がさらに減るぞ
754デフォルトの名無しさん
垢版 |
2021/10/19(火) 19:56:28.13ID:GtxXqLyf
>>753
桜を見る会に桜井誠は呼ばれたのか?
2021/10/19(火) 20:03:42.12ID:KyySFZDA
>>731
炎上学習法とはよくいわれたものです…
2021/10/19(火) 20:09:58.44ID:L2ZQN19z
違います
今後の心配は園遊会やお正月などのお食事会にモェ呼ばれるのか、という点です
2021/10/20(水) 07:14:37.76ID:0k8Pnquo
>>729
RAIIだから例外安全、と言うのは短絡的
文盲に読み飛ばされたのかしらんが>>720>>721において
@ オブジェクトが個々に盲目的にリソースを解放するのが常に安全と言えるか?
A リソース解放時にエラーが生じたものを無視しておいて安全と言えるか?(あるいはコードの追加無しに無視せずに済む方法があるか?)
2021/10/20(水) 07:16:51.24ID:0k8Pnquo
B リソース解放を解放しない瑕疵があるオブジェクトの混入が無いことをどうやって保証するのか?
という3つの問題提起をしているのに対して、あいまいに取り繕って逃げたのが>>722

@〜Bに定説が無いとすれば(実際無いのだが)、例外安全というのは信奉する馬鹿の数だけ定義があるという話
2021/10/20(水) 07:19:57.61ID:NMVwWGr0
盲目じゃねえし
uncaught_excptionsも知らんようだな
って言うとにわかで調べてシッタカこくんだろうけど
今の今までおくびにも出さなかったことで
どの程度の野郎かは察しがついてる
2021/10/20(水) 07:21:14.97ID:0k8Pnquo
だいたい火災で炎上するビルの8階から人が飛び降りたとして、
例外安全とやらでできることはせいぜい人を地面に軟着陸させて生命を守るぐらいの話で、
ビルの火災を消化はしないし(それをやるのは消防署
消化後のビルを復旧はしないし(それをやるのは各種の工事屋
復旧した8界のオフィスに飛び降りた人を戻して業務を再開させることもしない(それをやるのやEmployer

普通の人はまず火災を防ぐことを第一に目指すのだが、
例外安全主義者はそんなスタイルを古いと言い、例外安全に作っとけば安全と言い張るのだ
2021/10/20(水) 07:31:45.94ID:NMVwWGr0
全然関係ねえよ
マジでビルから飛び降りて氏んだら?
2021/10/20(水) 07:33:15.63ID:0k8Pnquo
>>759
@〜Bのどれにも掠りもしない反応
(を出したことによって知能程度に察しが付く
2021/10/20(水) 07:35:17.39ID:0k8Pnquo
でfgets()に戻るが、以下のコードの例外の捕捉のコストは話の本筋ではないので無視していただきたいのだが
(そのコストが気になるなら「スコープを抜けたら閉じるFILE*」みたいなブツを作ったらfclose()のエラー処理以外は同じにできる)、
void foo() {
 FILE* fp = fopen(...); // fpがNULLだった場合のチェックは記載省略
 try {
  Bar x, y, z;
  (fgets()とかのコード)
 } catch (Exception ex)
  fclose(fp)
}
}
とかなコードを見たら普通の人は「chatchに飛んできて大丈夫なんか?」とtryブロック内をチェックするが
(x, y, zの解放が保証される、とかは関係無しに
例外安全主義者にかかってはそんなことはお構いなしである。とにかく安全と言い張る
2021/10/20(水) 07:39:44.59ID:kO478Zp/
バカの主張: バグがあるかも知れないから例外安全は「使い物にならない」

アホすぎだろ…
2021/10/20(水) 07:44:50.14ID:0k8Pnquo
>>764
>例外安全はやれるならやった方が良いのは認める(>>721
>例外安全に予期せぬ事象が起きたときのセーフティーネット以上のことを気体できい(>>727
というわけで文盲に言われたくは無い

特定のケースにおいて、例外でエラー処理を安全に書けてその後のリカバリーもスムーズにいきますよ、
みたいな特定方面で有効なソリューションとして例外安全を勧めるのであれば問題無いのだが、
テキストファイルをfgets()で読むという絶対的に正しい事柄への批判に無理矢理つなげようとするから
話がおかしくなる
2021/10/20(水) 07:45:51.66ID:GCto648C
>>763
x,y,zのデストラクタならcatchに飛んだ時に呼ばれることは保証されてるけど…?
例えばyのコンストラクタで例外飛んでもxは~Bar()呼んでzは呼ばないくらいコンパイラがやってくれるけど…?
そういうの忘れずやってくれるのがコンパイラだから任せようぜっていうのがRAIIなんだけど…?

まさかこんな事も知らずに例外安全がどうのと偉そうに論じてたの?嘘だろ?
2021/10/20(水) 07:47:08.92ID:GCto648C
>>765
お前はもう喋るなド初心者
2021/10/20(水) 07:47:29.23ID:0k8Pnquo
>>766
ま た 文 盲 か
>(x, y, zの解放が保証される、
と書いてあるわけだが?
しかしだからといっても普通の人はtryブロック内をチェックするだろ、という主張
2021/10/20(水) 07:55:59.64ID:GCto648C
>>768
初心者はおとなしく教科書の質問だけしてろよ
何かを知っているふりをするのをやめろ
2021/10/20(水) 08:05:08.97ID:0k8Pnquo
>>769
質問ですが例外安全の教科書として藻前は何を読んだことがあるのでぃすか?
2021/10/20(水) 08:13:47.58ID:kO478Zp/
> 例外安全主義者にかかってはそんなことはお構いなしである。とにかく安全と言い張る
どこの主張を言ってるのか知らんけどどう見てもお前の方が「文盲」なわけだがw
2021/10/20(水) 08:27:40.98ID:DhnN+uGO
>>763
RAII を使わず明示的な catch でリソース解放しているコードを見て、一般的な C++ プログラマは「危険」だと見るのでは?
その例だと「fgets()とかのコード」内の return などで fp がリークする可能性があるわけで。
2021/10/20(水) 08:31:29.32ID:xpWbVnlK
誰が「例外安全なら大丈夫」と言っているの?レス番は?
774デフォルトの名無しさん
垢版 |
2021/10/20(水) 09:12:35.95ID:OEiI06HQ
Kuso.KENTA.
2021/10/20(水) 09:21:20.26ID:glY3n63N
いつになっても
do {
} while(0);
でbreakをgoto代わりに使うしかないのか
2021/10/20(水) 09:23:08.99ID:NMVwWGr0
>>763
めまいがするほどのひでえコード
やめてくれバカがうつる
777デフォルトの名無しさん
垢版 |
2021/10/20(水) 09:35:49.31ID:OEiI06HQ
>>743
観ようとしなければ何も観えない
そんな簡単なことにも気付けない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況