[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
218
(1): デフォルトの名無しさん (ワッチョイ bfb0-tai3) [sage] 2024/02/07(水) 12:56:29.41 ID:0txhPX/d0(1/2) AAS
それでいいよ
231
(1): デフォルトの名無しさん (ワッチョイ ffcf-HxQs) [sage] 2024/02/10(土) 18:55:23.41 ID:0f3gz8pL0(1/3) AAS
>>229
229(2): デフォルトの名無しさん (ワッチョイ 5763-dZsi) [sage] 2024/02/10(土) 12:26:53.58 ID:KJGevrBa0(2/2) AAS
>>186
>catchしたらテストケースが増えるかどうかという話とはなんも関係がない。
あっる
catchする必要性箇所を設計で厳選すればcatchが減るのだからテストケースは減らし得る

例外を使う場合:
スルーしたりcatchして再スローが生じるfoo()の呼び出し箇所(とするのが現実的でないなら呼び出しパティーン)がm個、
スルーしたりcatchして再スローする段数が(簡単のためここでは平均とする)a個、
foo()が例外を生じるパティーンがn個なら、m^a^n個のテストケースが必要なところであるが

catchする必要性箇所を設計で厳選した場合:
foo()の呼び出し箇所(とするのが現実的でないなら呼び出しパティーン)がm個だとしたら、
例外が飛んでこないことを確認するのテストケースがm個のオーダーで要るだけ……
>例外が飛んでこないことを確認するのテストケースがm個のオーダーで要るだけ……

いったい何をテストしようとしているんだろうか。
仮に「例外が飛んでこないことを確認するテスト」なるものができたとして、catchしたらそれができなくなるのか?

前半のよくわからない計算はcatch句を書いたらそのC0網羅のためのテストケースが必要になるとかいうことなんだろうか。
298
(1): デフォルトの名無しさん (ワッチョイ 1b63-9XlH) [sage] 2024/03/02(土) 23:49:37.41 ID:C77pR/Zl0(2/3) AAS
>>284
284(3): デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/17(土) 23:48:07.59 ID:QSMcEn770(2/2) AAS
例外安全と例外の種類には特に関係はないわけで、知らない例外だと例外安全の保証が困難になるなんてこともない。
例外安全というもののスコープに対して考察が足りていない

1.
例外安全なオブジェクト foo のデストラクトが他の例外によって引き起こされるケースでは
foo の安全な終了は(メモリかファイルステムか何かが物理的にぶち壊れてOSがパニックになったとかでない限り
ほぼほぼ保たれるから>>284のような言い方はできるっていやーできるが、
システム全体については>>283
283(5): デフォルトの名無しさん (ワッチョイ 1e85-XyAm) [] 2024/02/17(土) 23:18:00.46 ID:v62CV0mD0(1) AAS
>>278
> そもそも致命的な例外でアプリケーション自身の継続が困難な場合を除いて
> どんな例外でもあっても継続的な処理を可能にするのが例外処理だろうに

それは幻想
c++の例外安全の達成がどれだけ難しいか理解していないね
簡単にリークするし、オブジェクトが想定外の状態を持ったりする
動作保証ができない
だから仕様に明示されていない例外が来たら基本は終了だよ
そのまま継続してそれが原因でその後別の場所で落ちられたら無駄な調査の手間が増えるだけ
の通りであって全然安全ではない

2.
fooの中の例外処理が本当に完璧かはfooのコードに書かれている全てのtry { } catch () について
全ての例外発生条件についてテストか厳格めのコードレビューでも行わないことには安全性が担保されない。
(つまり例外安全にした実装したと主張するだけでは話がただちには簡単にはならない
300
(1): デフォルトの名無しさん (ワッチョイ 0fcf-0WZ8) [sage] 2024/03/03(日) 21:57:15.41 ID:735dldsp0(1) AAS
>>298
自分が呼び出す関数が例外安全にできているかどうかと自分の処理が例外安全かどうかをごっちゃにしてるだろ。
しかも、呼び出す関数からドキュメント化されていない想定外の例外が発生するなら例外安全に作られていないだろうという
変な決めつけが混じってる。
例外安全なコードは例外の種類に依存しない。知ってる冷害に対しては安全だけど知らない例外が飛んできたら安全じゃない
なんてのはそもそも例外安全とは言わない。
344
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ a932-zlCG) [sage] 2024/06/07(金) 05:36:24.41 ID:zM43Xr/H0(2/2) AAS
>>336
336(1): 警備員[Lv.23] (ワッチョイ 1563-WQ8n) [sage] 2024/06/06(木) 07:55:41.85 ID:Glzej5210(2/3) AAS
質問なのですが
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)
第四の選択肢
std::fstream ofs("foo.txt", ofs.out | ofs.binary);
354
(1): デフォルトの名無しさん (ワッチョイ 6363-vt9G) [sage] 2024/06/09(日) 21:14:14.41 ID:VES2dE5O0(1) AAS
WSLはlldbが使うシステムコールが足りてないって昔から言われていたかと

ターゲット機を別にするとかWSL2にするとかじゃね?
401: デフォルトの名無しさん (ブーイモ MM33-DGdp) [sage] 2024/08/08(木) 16:07:46.41 ID:fgfi2g+JM(1) AAS
VMのオーバーヘッドがあるのに20倍って?
あるいは20倍時間が掛かる?
516: デフォルトの名無しさん (ワッチョイ 4907-+Yhf) [sage] 2024/10/29(火) 13:58:12.41 ID:WYOK+g300(1) AAS
好きなように書いて、好きなように変換して、途中でincludeする
簡単に書くもよし、ガッチガチにチェックするもよし
564: デフォルトの名無しさん (ブーイモ MM02-7yGp) [sage] 2024/11/19(火) 13:12:37.41 ID:5+FMYvHmM(2/2) AAS
見た目はとても重要だが
見ただけでは何が実行されるかわからない
589: デフォルトの名無しさん (ブーイモ MM02-fwvC) [sage] 2024/11/22(金) 16:24:36.41 ID:prOH0XeSM(1) AAS
>>588
588(2): デフォルトの名無しさん (ワッチョイ fb9c-jy16) [sage] 2024/11/22(金) 12:04:14.61 ID:OZOUVDIp0(1) AAS
>>585
後置記法なら
(8.0 std::numbers::pi G)を掛ける
(c c c c mu0)を掛ける
割る
みたいな感じかな。
>>587
587(1): デフォルトの名無しさん (ワッチョイ 5f01-P+OA) [sage] 2024/11/21(木) 23:41:45.40 ID:i1qXvmQ+0(2/2) AAS
8.0 pi mul G mul c c mul c mul c mul mu0 mul div

649: デフォルトの名無しさん (ワッチョイ 23ef-s7Wh) [sage] 2025/01/04(土) 19:25:11.41 ID:Dnxz33hn0(1) AAS
ECMAScript® 2024 Language Specification
A Grammar Summary
外部リンク[html]:tc39.es
より抜粋
| PrimaryExpression :
| Literal
| ArrayLiteral
| ObjectLiteral
| RegularExpressionLiteral

| Initializer :
| = AssignmentExpression

camel case の『ArrayLiteral』等は文法記法上のシンボルであり専用の(斜体)フォントが使用されている。
『ArrayLiteral』は『PrimaryExpression』の下に『Literal』や『RegularExpressionLiteral』等と並んで定義されているので『Literal』の下には無い。
これを踏まえて、何故『ArrayInitializer』というシンボル名にしなかったのかという疑問なら話が分かる。C や C++ の『Initializer』関連も参考になる。
754: はちみつ餃子◆8X2XSCHEME (ワッチョイ e932-exlI) [sage] 2025/03/17(月) 09:55:35.41 ID:xz+hBXXy0(1/3) AAS
オーバーロード解決のルールは大雑把には
 ・候補の中で実引数と完璧に型が一致するものがあればそれが選ばれる。
 ・完璧な一致がないが暗黙の型変換を適用したら一致するという候補があればそれが選ばれる。
ということになってる。
実際には変換の中にも優先順位がごちゃごちゃあってかなり複雑なんだけど……。

で、組み込みの単項 + が受け取りうる型は何かというと算術型、スコープなし列挙型、またはポインタ型の三つ。
外部リンク:timsong-cpp.github.io

キャプチャなしのクロージャ型は関数ポインタへの変換関数を持っている。 つまり暗黙の型変換が可能。
外部リンク:timsong-cpp.github.io

クロージャからポインタへ暗黙の型変換をすれば単項 + に一致するからそれが選ばれる。
そういうメカニズムだと私は理解してるんだけど間違いがあったら誰か指摘してね。
769: デフォルトの名無しさん (ワッチョイ 0107-exlI) [sage] 2025/03/21(金) 22:32:50.41 ID:pLF+KLC30(1) AAS
そういうむちゃくちゃが簡単にできるのがC/C++

そんなことしながら、チップを覚えるんだよなあ
自分、次はMIPS覚えないと
852: デフォルトの名無しさん (ワッチョイ 829f-1egp) [sage] 2025/04/11(金) 13:45:57.41 ID:8HYvuWNF0(1/2) AAS
>システムコールが追加されたら
??
970: デフォルトの名無しさん (ワッチョイ 8af0-pFs9) [sage] 2025/04/24(木) 13:51:17.41 ID:XeDfAgiK0(1) AAS
vtableのことかよ
最近のはプリフェッチ改善されてきているからな
995: デフォルトの名無しさん (ワッチョイ 1701-7NrX) [sage] 2025/04/27(日) 15:18:04.41 ID:5TUg21k+0(1) AAS
せやば
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.046s