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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
102: はちみつ餃子◆8X2XSCHEME (ワッチョイ 43c3-KM86) [sage] 2023/12/30(土) 08:47:16.28 ID:XV37Te4m0(1) AAS
>>100
100(1): デフォルトの名無しさん (ワッチョイ de63-J7+h) [sage] 2023/12/30(土) 05:42:41.89 ID:3ksfrMrT0(1/3) AAS
>>99
>int x, y;
>cin >> x >> y;
おk
スマンカッタorz

エラーとEOFのどちらかを検知したかったら!cin.good()が正しいっぽい?
外部リンク:blog.emattsan.org

ここまでは分かった気がするが、
ストリーム入力演算子std::istream& operator>>(std::istream& os, Foo& obj)の中で入力に失敗した場合
どうやってエラーを呼び出し元に通知したらええんじゃ……
ストリームのフラグを立てるメンバ関数は setstate だけど
>>101
101(1): デフォルトの名無しさん (ワッチョイ de63-J7+h) [sage] 2023/12/30(土) 05:50:37.02 ID:3ksfrMrT0(2/3) AAS
クラスFooの入力ストリーム演算子の中で整数を2個読むとして、
std::istream& operator>>(std::istream& os, Foo& obj) {
 int x, y;
 os >> x >> y;
 if (!os.goot()) {
  return os; // エラー発生時は単純にreturn os; でおk?
 }
 obj.m_x = x;
 obj.m_y = y;
 return os;
}
の状況ならフラグはもう立ってるから戻るだけで問題ないよ。
204: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-MxBP) [sage] 2024/02/03(土) 14:49:57.28 ID:Sz70frqK0(2/2) AAS
>>203
203(1): ◆QZaw55cn4c (ワッチョイ 3555-LgJ8) [] 2024/02/03(土) 10:15:36.86 ID:21sfApha0(2/2) AAS
>>198
>値で持てるところは単に値で持つほうがC++っぽいと思う
時代の流れを感じさせるお言葉です。なにせ K&R1 で育った世代なので(K&R1 では構造体の実体渡しはできず、かならずポインタで渡さなければならなかった)。
C++ においても、コピコンを働かせないために const & を多用する毎日です
内部的に値で持つのでもポインタで持つのでもいいけど
「簡単に値として取り出せる」のはあまりよろしくないと思う。
これ (>>189
189(4): ◆QZaw55cn4c (ワッチョイ 3583-LgJ8) [] 2024/01/28(日) 20:27:29.75 ID:0TnCAHFI0(1) AAS
思い立って結城さんのデザパタ(古いjava で記述)を総称型(テンプレート)もちゃんと使ってC++ に書き直しているけれども、
new/delete からptr::shared_ptr に書きなおすと、もう構造がわかりにくくなってしまってどうしようもない
デザパタ=抽象クラスプログラミングは C++ ではオワコンなの?
Visitor パターン
new/delete: 外部リンク:ideone.com スッキリ書けてきもちいい
std::shared_ptr: 外部リンク:ideone.com 恐ろしい宣言の連発

>std::shared_ptr<Iterator<std::shared_ptr<Entry>>> iterator() { return std::make_shared<VectorIterator<std::shared_ptr<Entry>>>(v); }

なんかもう書いてても意味不明
CONSTRUCTOR(CONSTRUCTOR *p) とかコピコン以外にもみたことのないコンストラクタが要求されるし
) がおそらくファイルシステムを表現しようとするもの
だという前提を考えたらオブジェクトの構造も
ファイルシステムのモデルを抽象するものであるべきだと思うから。

ファイルはそれがある場所にも意味があるからファイルを象徴するオブジェクトが
場所から離れてやりとりされるのは違和感がある。

まあファイルシステムのモデルをどう捉えるかは私の感想でしかないから
何が妥当とは強くは主張しないけど、
いずれにしても実装上の都合じゃなくて使う側の感覚でどうなってて欲しいかという視点が要ると思う。
232
(2): デフォルトの名無しさん (ワッチョイ ffcf-HxQs) [sage] 2024/02/10(土) 20:56:08.28 ID:0f3gz8pL0(2/3) AAS
>>228
228(3): デフォルトの名無しさん (ワッチョイ 5763-dZsi) [sage] 2024/02/10(土) 12:18:06.78 ID:KJGevrBa0(1/2) AAS
>>185
>>183の主張の
>一方、例外を生じないライブラリの使い方(関数の呼び出し方)を心掛けるかどうか。これなら選択肢がある
が完全に読み飛ばされている件について:

例外を生じないライブラリの使い方で設計したら、funcB()から例外が飛んでくるのはバグなので
調査と修正の対象になる。
(結果的にやっぱtry { funcB(); } catch (/*略*/) { ... } いるじゃーん?となる可能性はあるがたいていはそうはならない

>>188のように自分が何をやっているのか認識しないまませき止めるのは論外すぐる……
>>>188
188(2): デフォルトの名無しさん (ワッチョイ 66cf-5eDQ) [sage] 2024/01/28(日) 17:01:39.99 ID:Gsm093HM0(3/3) AAS
例外安全性を守るのに例外の種類やそれが既知か未知かは関係ないだろうが、
仕様に明記した例外以外は堰き止めるのが正解だろうなあ。
のように自分が何をやっているのか認識しないまませき止めるのは論外すぐる……

どこが論外?>>169
169(2): デフォルトの名無しさん (ワッチョイ 6ecf-CdjJ) [sage] 2024/01/15(月) 18:20:04.00 ID:Y8oMeLNI0(2/5) AAS
>>167
そのtryブロックの処理が失敗したものとして処理を続ける。
でぜんぜん問題ないが。
269
(1): デフォルトの名無しさん (ワッチョイ 12ad-v2JO) [sage] 2024/02/13(火) 13:07:38.28 ID:mTl8FNrx0(1) AAS
> 典型的には小組織から始まるURLの並びですな。木構造との相性がひどく悪い。
それは人間から見たときと機械から見たときの見やすさの違いでしかないような気がする

でも日本の住所は大きい方から始まるんだよな
アメリカは個人から始まる
文化の違いやけども、日本人は機械生命体だったのかもしれぬ
347: デフォルトの名無しさん (ブーイモ MMea-FHn0) [sage] 2024/06/07(金) 21:12:45.28 ID:70o6R+hDM(1) AAS
また時代に取り残されるじじい
415: デフォルトの名無しさん (ワッチョイ 7f78-/FHh) [] 2024/08/24(土) 15:09:12.28 ID:yYuYqoCz0(6/6) AAS
std::is_same<T,double>::valueの代わりにstd::same_as<T,double>でも良いみたいですね.
488: デフォルトの名無しさん (ワッチョイ e39c-jZWQ) [sage] 2024/09/27(金) 17:14:28.28 ID:n6BA5joS0(2/3) AAS
>>483
483(1): デフォルトの名無しさん (ワッチョイ 5e79-w5sm) [] 2024/09/27(金) 12:33:43.81 ID:6/1p1gGO0(1) AAS
スマートポインターを使うように強制できる機能とかなら必要ないなあ
コーダー向けので考えるなら、スマポ強制は最優先だろ。

生ポインタを(コーダーが)保存できなくするだけでも随分安全になる。あと生ポインタdelete禁止とか。
494: デフォルトの名無しさん (ワッチョイ e37c-C1Jv) [sage] 2024/09/28(土) 10:42:06.28 ID:swed/tX60(1) AAS
C++はどんな安全策敷いてもユーザー側がその気になればいくらでもぶち壊せるからね
ライブラリがあんまりそこ頑張っても仕方ない
712: デフォルトの名無しさん (ワッチョイ 0901-Nguo) [sage] 2025/03/03(月) 10:23:10.28 ID:Hx0aO5p40(1) AAS
自動小説製造機になに期待してんだか
798
(1): 797 (ワッチョイ 4602-BGJw) [sage] 2025/03/24(月) 23:24:39.28 ID:C5SHS/Z30(2/2) AAS
すいません、タブが崩れました

下の方ですが、全角スペースで記載してますが

$(PROGRAM): $(OBJDIR)/$(OBJS) $(INCDIR)/$(INCS)
  $(CC) $(CFLAGS) -o $(PROGRAM) $^
.c.o:
  $(CC) $(CFLAGS) -c $(SRCDIR)/$<

こうです

申し訳ありませんでした
846: デフォルトの名無しさん (ササクッテロル Spd1-gX4K) [sage] 2025/04/08(火) 09:56:44.28 ID:HZL/zZFGp(1) AAS
開発ツールごと遺跡になって発掘される毎に解析されるんだよ
971: デフォルトの名無しさん (ワッチョイ b501-4ocp) [sage] 2025/04/24(木) 16:00:45.28 ID:ewKS50go0(1) AAS
>>968
968(1): デフォルトの名無しさん (ササクッテロロ Spbd-0ulL) [sage] 2025/04/24(木) 13:38:32.65 ID:rhg+hx6mp(1) AAS
まあ、クラス関数テーブル参照する分C++の方が遅いかなw
メンバ関数は必ずvtableを参照するものではない(非仮想のメンバ関数)
参照しなければCと変わらん
Cでvtable相当のものを用意してそれを介して関数呼べば
仮想メンバ関数呼ぶのと変わらん
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s