[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
12: デフォルトの名無しさん (ワッチョイ 1939-PupP) [sage] 2023/11/01(水) 18:24:49.00 ID:m9AntJVX0(1) AAS
コードにはある程度そいつの人間性は反映されるな
スレチな話題ではあるけど
78: デフォルトの名無しさん (ワッチョイ 771f-oseA) [sage] 2023/12/11(月) 17:14:54.00 ID:cVrrslE50(1/2) AAS
>>75>>7777(1): デフォルトの名無しさん (ワッチョイ d701-Qbcu) [sage] 2023/12/11(月) 16:34:20.59 ID:dil4ai7q0(2/2) AAS
>>74
思い出すのがしんどくなってきた
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
struct A {int value_;};
bool compA2 (const A &lhs, const A &rhs) {
return lhs.value_ < rhs.value_;
}
struct B {A a;};
int main () {
vector <B> bs;
bool (*compA) (const A &, const A &) {compA2};
sort (bs.begin(), bs.end(), bind (compA, bind (mem_fn (&B::a), placeholders::_1), bind (mem_fn (&B::a), placeholders::_2)));
sort (bs.begin(), bs.end(), [compA] (const auto &lhs, const auto &rhs) {return (*compA) (lhs.a, rhs.a);});
return 0;
}
お二方、ありがとうございます
参考にして組んでみます
94: デフォルトの名無しさん (ワッチョイ cf63-nyJS) [sage] 2023/12/24(日) 19:50:06.00 ID:foDTiHm90(5/5) AAS
Foo obj;
std::string s = obj.str(10); // 10億ギガ文字
cout << s;
出力を完遂できるんかこれ……
96: デフォルトの名無しさん (ワッチョイ a31e-H80b) [] 2023/12/24(日) 21:41:50.00 ID:Y8qSN/i/0(2/2) AAS
オブジェクトの文字列表現が10億ギガ文字もあるの!?
FooWrpオブジェクトをうっかりログに出力しちゃったら大変だね!!
166: デフォルトの名無しさん (ワッチョイ 6ecf-CdjJ) [sage] 2024/01/15(月) 08:10:14.00 ID:Y8oMeLNI0(1/5) AAS
人命にかかわらない場合であっても、末端の関数が投げる例外の種類を見落としただけでプログラム全体が
いきなり落ちるのは勘弁してほしいし、それを防ぐために全部の関数が投げる例外の種類を全部把握するというのも
無理ゲーに近い。
なので適当なレイヤーごとにざっくり std::exception をキャッチする造りにしてるな。例外の種類で選択したりはしない。
169(2): デフォルトの名無しさん (ワッチョイ 6ecf-CdjJ) [sage] 2024/01/15(月) 18:20:04.00 ID:Y8oMeLNI0(2/5) AAS
>>167そのtryブロックの処理が失敗したものとして処理を続ける。
175: デフォルトの名無しさん (ワッチョイ 6ecf-CdjJ) [sage] 2024/01/15(月) 23:24:57.00 ID:Y8oMeLNI0(5/5) AAS
それはいったい何のテストなんだろう。原因不明の例外を首尾よくキャッチできるかどうかテストしろと言っているんだろうか。
そもそもそういう例外を想定するなら、スルーして影響範囲が広がる方がテストは厄介になると思うがなあ。
247: デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 10:14:56.00 ID:XOPhWcHA0(3/5) AAS
>>245?
そのtryブロックの処理が失敗したものとするって書いてあるじゃん。
282(2): デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/17(土) 20:37:07.00 ID:QSMcEn770(1/2) AAS
>>272272(1): デフォルトの名無しさん (ワッチョイ ef63-uLm/) [sage] 2024/02/17(土) 11:55:24.05 ID:hsYxYbKj0(1/2) AAS
>>250
>>2. fall-throughする関数が例外による処理の中断でおかしいことにならないか(←要テスト!
>もしそのテストが必要なんだとすれば、catchしない場合はその例外が通過する
>呼び出し階層全部でテストをしなきゃならないってことになるが。
その通り。テスト不要としたいなら、例外が出た原因を調べて出ないようにするのが筋
原因を調査して対策せずに予防的にテスト不十分のtry { } catch () をてんこ盛りにする方がソフトウェアー品質が上がるという考えのはおかしい
>>251
>catchする⇒無視する、握りつぶす って脳内変換
脳内変換ではなくて、予防的に入れたtry { } catch ()部分のテストが不十分な限り事実じゃーん?
>>252
>本質的にやってること変わらないのに
別に。
return -1; は呼び出し側のバグで見落とすかもしれないが
throw std::logic_error("*** ERR ***"); なら悪評千里を走ってバグの兆候が嫌でもワカル
むしろ予防的なtry { } catch () が例外のメリットをreturn -1; に縮小してゐる
>原因を調査して対策せずに予防的にテスト不十分のtry { } catch () をてんこ盛りにする方がソフトウェアー品質が上がるという考えのはおかしい
相変わらずずれてるな。 catch する == 原因を調査しない じゃないわけ。
>return -1; は呼び出し側のバグで見落とすかもしれないが
>throw std::logic_error("*** ERR ***"); なら悪評千里を走ってバグの兆候が嫌でもワカル
戻り値のチェック漏れは静的局所的にチェックできるが例外は出てみなけりゃ結局澪とされるわけだが。
リリース後にユーザーサイドでその見落とされていた例外が発生してプログラムが落ちたりしたらそれはただのバグ。
287(1): デフォルトの名無しさん (ワッチョイ e3f9-NGC7) [sage] 2024/02/18(日) 09:39:44.00 ID:9f8IS57r0(1/3) AAS
ぶっちゃけ>>283283(5): デフォルトの名無しさん (ワッチョイ 1e85-XyAm) [] 2024/02/17(土) 23:18:00.46 ID:v62CV0mD0(1) AAS
>>278
> そもそも致命的な例外でアプリケーション自身の継続が困難な場合を除いて
> どんな例外でもあっても継続的な処理を可能にするのが例外処理だろうに
それは幻想
c++の例外安全の達成がどれだけ難しいか理解していないね
簡単にリークするし、オブジェクトが想定外の状態を持ったりする
動作保証ができない
だから仕様に明示されていない例外が来たら基本は終了だよ
そのまま継続してそれが原因でその後別の場所で落ちられたら無駄な調査の手間が増えるだけ
がなに言ってるのかわからない
継続してそれが原因で?
いやいやw
突如落ちるより、保存できるデータは保存してもらう機会を与えることは出来るだろ
なんでお前は何事もなかったかのように作業を続ける前提でしか話を聞かないんだ?
オブジェクトの状態が変わっているかも?
変更前のデータと比較して変わっていたらユーザに確認すればいいだろ
例えば図形情報のうちTopの読み込みで例外が発生した場合に想定してないからとアプリ落として全情報ロストさせる気か?
Topは0で初期化させ読み込めなかったことをユーザに伝えて修正、もしくは再読み込みの機会を与えるだけの話だろ
365: デフォルトの名無しさん (ワッチョイ f5f9-pk1M) [] 2024/07/13(土) 21:42:42.00 ID:Rh1MnFN10(1/2) AAS
VS17.10.xでBoostがビルドできなくなってるのに
誰も触れない
394: デフォルトの名無しさん (ワッチョイ 1320-cRFB) [sage] 2024/08/04(日) 21:00:47.00 ID:YVKn/U480(1) AAS
なんでオワコンなの?
445(1): デフォルトの名無しさん (ワッチョイ bfac-jESi) [sage] 2024/09/07(土) 11:58:09.00 ID:UFsx2JaR0(1) AAS
>>444生ポ使うよりかスマートポインタの参照を使った方がマシだったりするからなぁ。スマートポインタがスタックフレームにあるなら安全だし。
スタック変数専用仮引数とかあればもっと安全になるのになぁ。
仮引数の種類はもっとあっていいと思う。
481(1): デフォルトの名無しさん (ワッチョイ e39c-jZWQ) [sage] 2024/09/27(金) 10:23:27.00 ID:n6BA5joS0(1/3) AAS
>>480480(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ e332-Pvcq) [sage] 2024/09/26(木) 20:25:47.69 ID:B+Au+yIB0(2/2) AAS
>>165
C++ のコードを Rust から呼び出したりするくらいのことは簡単に出来るよ。
たぶん (Java に対する) Kotlin みたいなこととして思い浮かべているようなことは出来る。
Rust がやってるような安全性の保障を自動では受けられない。
当然だが安全ではない (安全性が検証されていない) C++ のコードが Rust から呼び出すことで安全になったりはしない。
大抵の場合に Rust の都合に合わせてラッパーを書くことになる。
KotlinとJavaみたいにソースコードを混在できるレベルの相互運用性てあったっけ?
Rustとc++では無理だと思うけど。
676: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/10(月) 11:15:20.00 ID:cWC6BpGk0(1/2) AAS
主要なリンカとしては gold, lld, mold などがある。
これらに比べると GNU Linker は単純に遅い。
ただ、オブジェクトファイルの構造には文書化されていない場当たり的に決められた不明瞭な部分も多くてよくわからんところは「GNU Linker の挙動が仕様」みたいな扱いなので確実に「正しい動作」を期待する保守的なディストリビューションは GNU Linker を採用することも結構ある。
702: はちみつ餃子◆8X2XSCHEME (ワッチョイ b132-Ah42) [sage] 2025/03/01(土) 00:04:13.00 ID:2btke4iS0(1) AAS
>>700プラグイン的なものを作る場合はベースになるソフトの仕様に従わなければならない。
設計思想を理解するのは自分で一から設計する場合とは違った難しさがある。
入門書を読んだ程度で取り組むには ChatGPT の助けを借りても難しすぎるように私には思えるが……。
>>701701(1): デフォルトの名無しさん (スッププ Sdfa-5me9) [sage] 2025/02/28(金) 23:50:16.76 ID:s8Qhss0ud(1) AAS
環境変数の話はC++の話ってより、Unix系の環境でのUIの話になるんだよね。
シェルスクリプトが中心にいるような世界だと、ああいうやりかたで設定するのが便利だったっていう。
正直、とりあえず無視して進んでもいい話だと思うよ。
優先度低いから、必要になってから学び直す感じで。
開発環境構築にあたって設定しなければならない (処理系や開発環境が参照する) 環境変数がよくわからんとかいう意味だと私は理解してた。
もしそういう意味なら必要になってからというんじゃなくて今必要なんだろ。
Java の経験はあるようなので環境変数の概念がわからんとかではないと思う。
865: デフォルトの名無しさん (オイコラミネオ MM95-exh5) [sage] 2025/04/11(金) 20:15:47.00 ID:qqgfnt32M(5/17) AAS
>>864幼稚園児なのかな?
946: デフォルトの名無しさん (ワッチョイ ff1d-NDjU) [sage] 2025/04/15(火) 20:44:04.00 ID:WjK3uBtU0(1) AAS
contractsのこと言ってるのなら単なるassertの別記法ではないぞい
984: デフォルトの名無しさん (ワッチョイ b501-N74K) [sage] 2025/04/26(土) 05:38:20.00 ID:qC2gIsX80(1/2) AAS
昔と出力コードが変わったなと思うのはコプロ周りの処理がSSE前提になった事かなぁ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s