X



C++相談室 part165

0326デフォルトの名無しさん (ワッチョイ 67b1-Jq5A)
垢版 |
2024/05/01(水) 21:36:46.68ID:/DCu7vsT0
python みたいに何でも格納できる辞書型ってC++には無いよね?
0327はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8732-nVjz)
垢版 |
2024/05/01(水) 22:29:05.62ID:IV4TsWNk0
>>326
要素を std::any にすればだいたいどんな型の値でも入れられる。
いろんな型を入れたところで使うときには元の型として取り出さないといけないから
処理は煩雑になってあまり良いことはないけど。
0336 警備員[Lv.23] (ワッチョイ 1563-WQ8n)
垢版 |
2024/06/06(木) 07:55:41.85ID:Glzej5210
質問なのですが
Q1. std::fstreamでファイルを開くときのフラグの指定の仕方は次のどれが正義?
 std::fstream ofs("foo.txt", std::ios::out | std::ios::binary); // (1)
 std::fstream ofs("foo.txt", std::basic_ios::out | std::basic_ios::binary); // (2)
 std::fstream ofs("foo.txt", std::fstream::out | std::fstream::binary); // (3)
0339 警備員[Lv.23] (ワッチョイ 1563-WQ8n)
垢版 |
2024/06/06(木) 23:36:07.51ID:Glzej5210
(1)は#include <ios>が要るし、
(2)は「basic_」の6文字×フラグの数 だけ長いし、
(3)も同様でありなおかつ>>337に従ったとき
 use binary = std::fstream::binary;
 use ibinary = std::ifstream::binary;
 use obinary = std::ofstream::binary;
となってしまい、
どれもこれもコード量最小化原則的にビミョーなことに……

ていうかなんで同じことをするのに複数の書き方があるのかっていうか、
Perlじゃあるまいし……
0343はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a932-zlCG)
垢版 |
2024/06/07(金) 05:26:04.94ID:zM43Xr/H0
>>342
そういう雑多な話題のちょうどよいスレは見当たらんし、単発で終わる質問程度なら許容されると思うが……。
質問の内容が漠然としているなら丁寧な回答は得られないと思う。
「よくわからない」という状況になるときってのは大抵の場合に関連する前提知識が足りてないので
質問が連鎖的に発生してダラダラ続いたりするから。
0350デフォルトの名無しさん (ワッチョイ f344-7AaF)
垢版 |
2024/06/09(日) 04:26:59.39ID:RJYm8+UN0
lldb v14.0.0 で正しくプロセスを実行できません
apt insrall でインストールしたもので, 環境はwsl 1 です
具体的には下のサイトのIssue Encountered:と全く同じ症状です
https://stackoverflow.com/questions/78275920/troubleshoot-lldb-on-ubuntu-wsl

改めて書きますと Hello World 表示だけのソースを clang でコンパイルし,
lldb で読み込み run させると

Process 20784 launched: '/home/Hustler/c++/move/move' (x86_64)

と表示されたまま応答がなくなり 放置すると(サイトでは強制終了させてるようですが)

Process 20784 exited with status = -1 (0xffffffff) lost connection
となってコマンド入力待ち状態となります

ちなみにプログラムはそのまま実行して正しく動作しますし gdb でも何の問題もありません
これに関して何か情報をお持ちの方いますか?
0352はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f332-Oh5j)
垢版 |
2024/06/09(日) 15:07:14.43ID:bthWHIYm0
WSL1 は (ある程度) Linux 互換のシステムコールを windows 内に実装することで実現していて Linux カーネルそのものではないので色々と不足がある。
(そのかわり Windows と親和性がある部分もある。)
WSL1 で用意してない Linux の機能に依存したアプリケーションは動かない。
まともな互換性が必要ならWSL2 を使いなさいという話なので手間をかけて WSL1 を積極的にはサポートしないと思う。
0355デフォルトの名無しさん (ワッチョイ f344-7AaF)
垢版 |
2024/06/09(日) 21:36:35.88ID:RJYm8+UN0
>>354
>WSLはlldbが使うシステムコールが足りてないって昔から言われていたかと

なるほどTHXです
clang使ってなかったので全然わかりませんでした
動かないlldbもさんざんggったんだけど system call未実装にはたどり着けませんでした
ようやくすっきりしました
0356はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f332-Oh5j)
垢版 |
2024/06/09(日) 22:04:05.34ID:bthWHIYm0
ざっとググってみた感じたと wsl1 では procfs が提供する情報が少ないのが lldb が動かない直接の原因みたいな数年前の情報は見つかる。
内部構造がまるで違うはずなのに表面的なインターフェースは互換にするなんてのは無理のある話なので互換性が「ある程度」にとどまるのは仕方ない。
0357デフォルトの名無しさん (ワッチョイ f344-7AaF)
垢版 |
2024/06/09(日) 22:18:48.29ID:RJYm8+UN0
んー
clangちょっと調べたかったんで
Visual Studioにclangインスコして調べますわ
できるならwslでやるのが手っ取り早いんですが
Q9550とQ9550sしか持ってないもんで
以来CPUの爆値上がりと最近の円の爆下がりで新しく組めてないんですわ
ダイサイズ変わらないのにCPU 3万ー> 10万とか購買意欲が萎える
0359350 (ワッチョイ f344-7AaF)
垢版 |
2024/06/10(月) 21:38:00.71ID:gvR5xwnw0
自己レスです
その後 Visual Studioのインストールオプションでclangを選択し
正しく動作することは確認したのですが...

今や誰でもロハで使えるインテルコンパイラがとっくの昔にllvm化されてたんですね
clangに拘りがなければ x86/x64のwin/linux/wsl は素直にopenAPI使っとくのが幸せかも.
ちなみにwsl 1にlinux版をインストールしましたが
コンパイラicxもデバッガgdb-opwnapiも何の問題もなく動いてます(今のところは)
なので
Visual Studio はインストールオプションのclang は外してもとに戻し
wsl は
>apt remove clang clang-15
>apt remove lldb lldb-15
しときました
レスを投稿する


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