[過去ログ] C++相談室 part156 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
574: 2021/06/28(月)16:32 ID:uBCftstC(1) AAS
「モジュール」はC++で作られたパッケージを配布しやすくしますか?
575
(1): はちみつ餃子 ◆8X2XSCHEME 2021/06/29(火)00:03 ID:OP5z1lEO(1/2) AAS
>>560
そうだよ。 その当たり前の話をしてるんだよ……。

互換性の問題というのは内部的なものなら問題が起きたときに修正すればいいが、
外部に出ているデータはそれに皆が合わせなければならない仕様と化すので
特定の C++ 処理系 (実行環境) でなら処理できるけど
出力されたデータフォーマットの詳細はわからんし処理系のバージョンがちょっと変わったら変わるかもしれん
というのでは困るやんというごく普通の話。
(もちろん普通の処理系はちょっとバージョンが更新されたくらいでは
バイナリ互換性をあまり壊さないように配慮するのが普通ではあるけど。)
576
(1): 2021/06/29(火)00:15 ID:MxyOwUyS(1/5) AAS
>>575
いつのまにか話ずらしてんな。

>>535
>読み書きに支障はないが、言語上の型とバイナリの対応付けについて明確な保証がないと困る。

言語上の型とバイナリの対応付けはPerlでもPythonでも保証されてるんだよ。
577: はちみつ餃子 ◆8X2XSCHEME 2021/06/29(火)00:20 ID:OP5z1lEO(2/2) AAS
>>576
されないよ。
ファイルのバイナリが BE か LE かわかっていない状況の話なんだから。
578
(1): 2021/06/29(火)08:12 ID:MxyOwUyS(2/5) AAS
>BE か LE かわかっていない状況

これの意味だが

・全く何の情報もない状況
→どんな言語を使おうが正しく読める保証がないし論ずるだけ無駄。

>>552の「C++ で書いてメモリをそのまま書き出したらそれのエンディアンは保証されてない。」状況
→「自環境のエンディアン」で読めるのはC++でもPerlでもPythonでも同じ。
579
(1): 2021/06/29(火)08:29 ID:qbDSHPwG(1) AAS
>>573
方法はともかく、普通にビット列かバイト列のレベルで仕様を決めてその通りに読み書きすりゃいいんじゃない
C++プログラマなら生データの扱いは得意でしょ
とはいえ手間がかかるしミスを生じやすいのも事実なので、めんどくせえ今すぐ読み書きしたいってだけならprotobufとかavroとか他にも色々あるよ
msgpackとの大きな違いはスキーマの有無で、スクリプト言語じゃなきゃスキーマはあったほうが便利だし、一般に実装が高速になりやすくデータサイズも小さくできる
580
(1): 2021/06/29(火)08:38 ID:zFDqDEto(1) AAS
>>579
「他人含めた仕様の強要」という観点が抜けてない?
それに、何回車輪の再開発させるつもりだよ。
581: 2021/06/29(火)08:57 ID:bpKPj1F0(1) AAS
>>580
強要したいならちゃんと仕様書書いて押し付けるだけの話
実装が面倒ってんならそれこそprotobufのようなスキーマのある汎用フォーマットならスキーマさえ書いとけば大抵の言語でserde用の型の自動生成までやってくれるよ
その点で言えばmsgpackは所詮mapなんで、仕様を強要したいなら別途仕様書が必要になるよ
582: 2021/06/29(火)10:54 ID:c9Dh6S0q(1) AAS
実の無い話はすぐ切り上げるのが大事だぞ
お互いの時間を無駄にしあってはいけない
583: 2021/06/29(火)12:00 ID:gO51uzZW(1) AAS
他人に構ってもらわなければ生きて行けないかまってちゃん人種は救いようがない
584
(1): 2021/06/29(火)13:20 ID:IWxlvq96(1/4) AAS
>>560
Perlでバイナリを扱うのは物凄く大変だった。
さまざまな自動変換がかかってしまうので、結局どうなるのかが分からない事が
多かったから。
例えば、数値なのか、文字なのかの区別が曖昧な感じで、たままた数値が入った
文字が、勝手に数値になって、'0' + 1 が、0x30 + 1 のつもりが、0 + 1に
なってしまったり、物凄く難しかった。
ASCIIコードの数値番号を取得したいと思っても、結果が数値の入った文字列に
なったりとか、よく分からない事が多かった。
何を何に変換しているのか、めちゃくちゃ難しかった。
省1
585: 2021/06/29(火)13:23 ID:IWxlvq96(2/4) AAS
>>584
16進数も複雑だった。
単に表示したいために16進数の文字列に直したら、どこかで勝手に数値として
解釈されていつの間にか思いもよらぬ「もの」に変化したりとか。
それで、バイナリや文字を細かく扱い際には、如何にCが楽であるかを思い知った。
586
(1): 2021/06/29(火)14:44 ID:UyxOx+sC(1) AAS
Cというか、それは最早動的型付けか静的型付けかとかの話では
587: 2021/06/29(火)15:11 ID:IWxlvq96(3/4) AAS
>>586
JSやRubyは、動的型付けだけど、Perlのように文字と数値の相互変換が勝手に
起きたりはしない。
588
(1): 2021/06/29(火)15:25 ID:MxyOwUyS(3/5) AAS
pack/unpack使えばそんな変なことにはならんぞ。
perlでバイナリ扱うなら常識。
589
(1): 2021/06/29(火)15:37 ID:IWxlvq96(4/4) AAS
>>588
それ自体はそうでも、その後いろいろなことが起きてややこしかったな。
590: 2021/06/29(火)18:21 ID:7i3kfcoq(1) AAS
強気なこと書き込む人はだいたい経験浅い
591: 2021/06/29(火)18:35 ID:tM55IFN7(1) AAS
ボカァもうOOPは捨てた!w
592
(1): ◆QZaw55cn4c 2021/06/29(火)18:54 ID:qfvhyFdx(1) AAS
>>578
あなたはちょっと残念な人ですね

実際には C/C++ ならば、処理系が LE/BE どちらに依存かにもかかわらず処理系に独立して LE なら LE用, BE なら BE用に書きわけることができる‥‥?
?の証拠は >>548
ことほど左様に、処理系に独立して LE/BE を書き分けることができるのなら「〜するべき」とかいう「べき論」は無意味でしょう
多分、はちみつ氏は?を失念していたのでしょう、べき論なんて振り回しても無駄なのに、あいかわらずべき論に拘泥するところなどは「ダメリカ様が守ってくださる!」的な馬鹿左翼並の振る舞いですから、そろそろあきらめるべきでしょうね
593: 2021/06/29(火)21:05 ID:MxyOwUyS(4/5) AAS
>>592

なにか別の話とごっちゃにしてないか?べき論って???

>実際には C/C++ ならば、処理系が LE/BE どちらに依存かにもかかわらず処理系に独立して LE なら LE用, BE なら BE用に書きわけることができる‥‥?

C/C++じゃなくてもPerlやPythonだってLE/BE書き分けられる手段は用意されているって話をしていただけなんだがな。
1-
あと 409 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s