[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
39: デフォルトの名無しさん (ワッチョイ 0310-QNcS) [sage] 2023/05/16(火) 15:18:28.27 ID:cdgpde7Q0 教えてもらえないでしょうか c++で クラスを作って関数を書いています。 大きくなり、可読性が悪いので、 同じクラス内のcppを別ファイルに分けたいのですが、 可能なのでしょうか 継承を使って、10個ぐらい数珠つなぎにして、一番最後の継承クラスに関数呼び出し元の関数を書いて、 途中の継承クラスに分けたい関数を書いたら、 と考えたりしています。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/39
40: デフォルトの名無しさん (アウアウウー Sa67-+/XS) [] 2023/05/16(火) 15:58:56.29 ID:mGp2Y9l5a >>19 めっちゃわかります http://mevius.5ch.net/test/read.cgi/tech/1683600652/40
41: デフォルトの名無しさん (アウアウウー Sa67-+/XS) [sage] 2023/05/16(火) 16:03:17.10 ID:mGp2Y9l5a >>39 可能 ヘッダのクラス定義はまとめないとだめだけど cppのソースは分かれてても最後にリンクで辻褄が合えばOK http://mevius.5ch.net/test/read.cgi/tech/1683600652/41
42: デフォルトの名無しさん (アウアウウー Sa67-MLJk) [] 2023/05/16(火) 16:24:39.60 ID:hKNAv4Vda >>39 後半で言っていることがちょっと難しいかな 多重継承の数珠繋ぎを言ってる? よく分からんけど多分そんな変なことしなくていいよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/42
43: デフォルトの名無しさん (ワッチョイ 0310-QNcS) [sage] 2023/05/16(火) 17:34:39.57 ID:cdgpde7Q0 >>41 >>42 助かります。ありがとうございます。 勉強してみます。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/43
44: デフォルトの名無しさん (スッップ Sd1f-paFp) [sage] 2023/05/16(火) 21:35:23.62 ID:+NXdN5Npd 可読性が悪いものは ファイルを分けても良くはならんぞ http://mevius.5ch.net/test/read.cgi/tech/1683600652/44
45: デフォルトの名無しさん (ワッチョイ 6fad-ZkZz) [sage] 2023/05/16(火) 21:55:30.94 ID:RFVtGrOF0 >>39 1つのクラスに機能を詰め込み過ぎなんじゃない? 昔、4万行のcppファイルを見たことはあるけどw http://mevius.5ch.net/test/read.cgi/tech/1683600652/45
46: デフォルトの名無しさん (ワッチョイ 73da-M4GN) [sage] 2023/05/16(火) 22:05:53.03 ID:oY5Fe8SB0 殆どコピペなんだろうな クラスの継承知らないヤツがよくやる荒業 http://mevius.5ch.net/test/read.cgi/tech/1683600652/46
47: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-ZkZz) [sage] 2023/05/16(火) 22:27:10.76 ID:tGbGLk1R0 そういえば C# でクラス定義を分ける機能 (パーシャルクラス) があると聞いたことがあるけど 本来的に分けるべきクラスを見かけだけ分割するような悪い設計を誘発しそうな印象がある。 C# について全然知らんので印象だけだけど。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/47
48: デフォルトの名無しさん (ワッチョイ 335f-GJof) [sage] 2023/05/16(火) 22:54:23.62 ID:A1rs+At80 partialはXAMLから生成された.csと手書きする.csをマージするための機能なので http://mevius.5ch.net/test/read.cgi/tech/1683600652/48
49: デフォルトの名無しさん (スプッッ Sd1f-zj+H) [sage] 2023/05/17(水) 07:00:26.09 ID:s9zxu+xkd >>47 多重継承っぽいやつ? http://mevius.5ch.net/test/read.cgi/tech/1683600652/49
50: デフォルトの名無しさん (スップ Sd1f-kcYJ) [] 2023/05/17(水) 08:36:31.92 ID:9mruUvtDd 分割されたそれぞれの断片をコンパイラの後工程で1クラスにまとめ上げる感じ。 なのでこんな感じの相互参照も許される。 partial class C{ private void F1(){ F2(); } } partial class C{ private void F2(){ F1(); } } まあ当然コードの見通しが悪くなるので、 コンパイラ生成が絡むとこだけをpartialにして1ファイル1クラスにしておくのが鉄則 http://mevius.5ch.net/test/read.cgi/tech/1683600652/50
51: デフォルトの名無しさん (スッププ Sd1f-paFp) [sage] 2023/05/17(水) 12:04:20.17 ID:nFfh+5gid 「1ファイル1クラスにしておくのが鉄則」 10行のクラスも10000行のクラスも何も考えずに1ファイル 思考停止君のやること http://mevius.5ch.net/test/read.cgi/tech/1683600652/51
52: デフォルトの名無しさん (オイコラミネオ MMc7-ZkZz) [sage] 2023/05/17(水) 12:36:42.78 ID:F24a8wLtM C#のpartialは基本的に自動生成されたファイルとの分離が主目的 winformsのコントロールのプロパティのイニシャライズとか人から触ってほしくないファイルで一種の馬鹿避けになってる delphiではそのコントロール向けのファイルがバイナリでぶっ壊れてもどうにもできないし コーディング中にコード内検索も出来ない 利便性が著しくよくない 後は一般のコードジェネレータの吐き出すファイル用にも使える 最近はmvvm toolkitで便利に使われている コードの可読性が上がるし触られたくないものを扱うのも便利 人力コードで使う場合は長いファイルの下請けメソッドを分割する場合 単純に可読性が上がるけど普通は別のアプローチを使う 特定の機能をまとめたファイルを一つ作ってそこに関連クラスを全部入れるとかもできるけど無しだろうな 特定のタイミングでプリンターに出力するメソッドを追加してファイルのアリ無しで切り替えるとかは出来そう http://mevius.5ch.net/test/read.cgi/tech/1683600652/52
53: デフォルトの名無しさん (アウアウウー Sa67-MLJk) [] 2023/05/17(水) 12:57:39.48 ID:TlHThGt8a おんなじ意味合いの関数なんだけどSFINAEしまくってて1000行くらいあるやつはよく見かける http://mevius.5ch.net/test/read.cgi/tech/1683600652/53
54: デフォルトの名無しさん (ワッチョイ 3302-Cej3) [sage] 2023/05/17(水) 13:32:11.85 ID:6s1sKbMg0 時代はパーシャル http://mevius.5ch.net/test/read.cgi/tech/1683600652/54
55: デフォルトの名無しさん (スプッッ Sd07-zj+H) [sage] 2023/05/17(水) 16:10:19.20 ID:ZA2j/mjnd 触られたくないコードって危険を孕んで内科医? 業務の情報が1人の社員に独占されていると そいつが急死したら詰むだろ http://mevius.5ch.net/test/read.cgi/tech/1683600652/55
56: デフォルトの名無しさん (オイコラミネオ MMc7-Np+b) [sage] 2023/05/17(水) 22:50:57.85 ID:F24a8wLtM 彼も若いころは文脈も理解できてまともにコーディングできたのかもしれない 皆いつか老化して意味が取れなくなるんだから いつか行く道と言うことで… http://mevius.5ch.net/test/read.cgi/tech/1683600652/56
57: デフォルトの名無しさん (ワッチョイ 7f28-sx1H) [sage] 2023/05/18(木) 08:16:22.48 ID:rquLbZPK0 互いに依存しないことを明確にするためにファイルを分けることはまれによくある…… static int g_foo; class A { ... }; class B { void bar() { baz(g_foo); A x; } // Bがg_fooやAへの依存が無いことはBをファイルを分けたらワカル分けなかったらわからん }; http://mevius.5ch.net/test/read.cgi/tech/1683600652/57
58: デフォルトの名無しさん (ワッチョイ 7f28-sx1H) [sage] 2023/05/18(木) 08:21:13.77 ID:rquLbZPK0 もっともファイルを分けたからといってもメモリのエイリアシング的な形で依存した場合は知らん some_func()が表記上はg_fooを含まないのに実は中でg_fooのアドレスを知っていて以下略 http://mevius.5ch.net/test/read.cgi/tech/1683600652/58
59: デフォルトの名無しさん (オイコラミネオ MMc7-Np+b) [sage] 2023/05/18(木) 22:15:33.79 ID:mLb7AMe5M さすがに冷たい対応だったかなと C#でpartialが入った経緯 winformsはGUIデザイナを使ってボタン等のコントロールを自由に配置してプロパティを変えて表示される文字を変えることができる 初期はデザイナで変更するとformのファイルがそのまま変更された そのファイルを人間も書き換えているので人がミスしたり運が悪いと整合性が取れなくなったりしてた 例えば全置換などやってデザイナの部分も書き換わったりとか それで自動生成された部分を人が不意に触れないないようにそこだけを別ファイルに出す目的でpartial classが出来た partial methodも作られたけど他人が使ってるのを見たことがない http://mevius.5ch.net/test/read.cgi/tech/1683600652/59
60: デフォルトの名無しさん (ワッチョイ ff79-ScEU) [sage] 2023/05/19(金) 02:03:23.75 ID:iSJAQTOS0 日本でパーシャルと言えばパーシャル冷蔵庫 微妙に凍結させた状態にして保存するというアレ まさにC#のpartialの事である http://mevius.5ch.net/test/read.cgi/tech/1683600652/60
61: デフォルトの名無しさん (スプッッ Sd1f-zj+H) [sage] 2023/05/19(金) 14:04:53.67 ID:Y7veEz1vd 偏微分 http://mevius.5ch.net/test/read.cgi/tech/1683600652/61
62: デフォルトの名無しさん (ラクッペペ MM7f-fulC) [sage] 2023/05/19(金) 14:20:06.94 ID:s84ipUzkM グラッド ダイバージェンス ローテーション http://mevius.5ch.net/test/read.cgi/tech/1683600652/62
63: デフォルトの名無しさん (アウアウウー Sa2f-SwK+) [] 2023/05/20(土) 13:24:28.97 ID:QfLlK72xa Φ(E) ∇・E ∇×E http://mevius.5ch.net/test/read.cgi/tech/1683600652/63
64: デフォルトの名無しさん (JP 0H2b-QEN2) [sage] 2023/05/20(土) 14:24:46.00 ID:duXb8gf0H ナブラッ http://mevius.5ch.net/test/read.cgi/tech/1683600652/64
65: デフォルトの名無しさん (ワッチョイ 03cf-owa4) [sage] 2023/05/20(土) 14:35:25.50 ID:mmZhl8HV0 チロワッ http://mevius.5ch.net/test/read.cgi/tech/1683600652/65
66: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/20(土) 15:53:45.99 ID:KTPYLvU6M APLを思い出した さすがに使ったことはないけど http://mevius.5ch.net/test/read.cgi/tech/1683600652/66
67: デフォルトの名無しさん (アウアウウー Sa2f-IRVr) [sage] 2023/05/20(土) 16:00:42.45 ID:eGW3N412a for(auto &v: createVector()) なんか処理 みたいな書き方してもcreateVectorは一回しかよばれず大丈夫ってことでいい? http://mevius.5ch.net/test/read.cgi/tech/1683600652/67
68: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/20(土) 16:21:49.91 ID:dyAKGBP20 >>67 せやで。 その関数が呼ばれるのは一度だけという解釈で正しい。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/68
69: デフォルトの名無しさん (ワッチョイ b301-HmrL) [sage] 2023/05/20(土) 16:23:49.47 ID:am3G09Kz0 >>67 そんくらい自分で試しなされ $ cat test.cpp #include <iostream> #include <vector> using namespace std; auto createVector() { cout << "hoge\n"; return vector <int> (); } int main () { for(auto &v: createVector()); // なんか処理 return 0; } $ g++ test.cpp $ ./a.out hoge http://mevius.5ch.net/test/read.cgi/tech/1683600652/69
70: デフォルトの名無しさん (ワッチョイ fff0-IRVr) [sage] 2023/05/20(土) 18:59:35.46 ID:VcGb9zmJ0 >>69 自分の環境だと通るのは知ってるけど、実は未定義でアウトみたいな場合あるから5chの有識者の意見が聞きたかった http://mevius.5ch.net/test/read.cgi/tech/1683600652/70
71: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/20(土) 19:26:09.53 ID:KTPYLvU6M かなり昔範囲forはプリプロセッサで展開されると聞いたことがあったなあ そういうのから誤解なんじゃないかな 実際展開してみたけどプリプロセッサでは展開されないです http://mevius.5ch.net/test/read.cgi/tech/1683600652/71
72: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/20(土) 20:10:50.85 ID:pdI1pmlS0 >>70 これのこと? std::vector<int> createVector(); for(auto &v: createVector()) // セーフ struct Result { std::vector<int> v; }; Result createResult(); for(auto &v: createResult().v) // UB http://mevius.5ch.net/test/read.cgi/tech/1683600652/72
73: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/21(日) 00:13:09.51 ID:tvaGSf6W0 >>71 range-based for は等価なコードを示す形で意味論が規定されてる。 https://timsong-cpp.github.io/cppwp/n3337/stmt.ranged 「こう書いた場合の挙動と等しい」という説明が「このように展開される」と誤解されたんだろう。 コンパイラの内部で実際に展開しても構わないんだが プリプロセッサはフェイズの整合性がとれなくなるのでこの展開をプリプロセッサでは実現できない。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/73
74: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/21(日) 00:41:25.84 ID:tvaGSf6W0 一時オブジェクトの寿命は個々の具体例を網羅的に覚えるというわけにもいかんので ちゃんと原則を理解しないといかんというのは警告しておく。 >>72 で提示された内容を解説すると、このとき createResult の結果である Result は一時オブジェクトなので 完結式の終わりには解体される。 (>>73 で提示した展開形を参照のこと。) 右辺値は参照で受けた場合に限りその参照の寿命と同じ分だけ寿命が延長されるというルールがあるので その原則に従えば Result::v の寿命は延長されるのだが v を内包する Result が解体されるときにメンバも解体してしまうので Result::v も無効になってしまう。 当然だがすでに解体されたオブジェクトはそのイテレータも全部が無効。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/74
75: デフォルトの名無しさん (スップ Sd8a-Cz+X) [] 2023/05/21(日) 10:05:34.04 ID:bUoMcGVnd 単純なFOREACHマクロだと展開できないんだよねこれ FOREACH(T x, iterable) "文" ↓ { auto&& range=iterable; auto&& begin=range.begin(); auto&& end=range.end(); for(;begin!=end; ++begin){ T x=*begin; "文" } } range寿命の関係上スコープの外に漏らしてはいけない。 FOREACHの終了を表現するために"#define FOREACH_END }}"とかの間抜けなマクロが必要になる (たぶんC++17で導入された初期化付きifを使えば誤魔化せるけど) セパレータの":"(or ",")をプリプロセッサを見つけるのが不可能。 Tでもiterableでも":"とか","を使って表現するケースに対応し切れない (Tにtypename std::array<int, 5>::value_type を指定されたら無理) http://mevius.5ch.net/test/read.cgi/tech/1683600652/75
76: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/21(日) 13:16:13.24 ID:gNV32dtiM そうそう プリプロセッサは重複の無い任意の変数名を持ってこれない 固定でもスコープの問題もあるからプリプロセッサ論は馬鹿げてるなと思った http://mevius.5ch.net/test/read.cgi/tech/1683600652/76
77: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/21(日) 14:57:20.57 ID:TLn2V+5X0 >>74 ちなみにこれはC++23からは解決する(P2644) for文の中身のあらゆる一時オブジェクトは(謎の力によって)ループ終了まで生存するようになる まあ現時点ではやらない方がいいし、気にしなくて良くなるまで10年はかかるだろうけど http://mevius.5ch.net/test/read.cgi/tech/1683600652/77
78: デフォルトの名無しさん (ワッチョイ b301-HmrL) [sage] 2023/05/21(日) 15:50:41.28 ID:hDRagkvp0 >>77 えええ! どんな需要を満たそうとしてそんな変更するんかね? http://mevius.5ch.net/test/read.cgi/tech/1683600652/78
79: デフォルトの名無しさん (ワッチョイ aa28-ff77) [sage] 2023/05/21(日) 19:09:41.96 ID:9sSc2LHl0 class Foo { int m_value; public: Foo() { m_value = 現在時刻に依存して決まる何かの値; } int v() const { return m_value; } }; int tmp; for (i = 0; (tmp = Foo().v(), tmp < 100); i++) { cout << i << "," << tmp << endl; } とかになったらどうなってしまウンダー/(;≧Д≦)\ http://mevius.5ch.net/test/read.cgi/tech/1683600652/79
80: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/21(日) 20:47:43.16 ID:TLn2V+5X0 for (auto&& x: <<ここだけだよ>>) http://mevius.5ch.net/test/read.cgi/tech/1683600652/80
81: デフォルトの名無しさん (ワッチョイ 6f5f-u1DA) [sage] 2023/05/21(日) 21:41:43.50 ID:Wy9ZySN20 std::for_eachと死ぬタイミング合わせようとしてるのかな http://mevius.5ch.net/test/read.cgi/tech/1683600652/81
82: デフォルトの名無しさん (スププ Sdea-3V1s) [] 2023/05/22(月) 11:38:14.26 ID:da9WNPSud do{}while(ここにblock内で宣言した変数使えるのマダ?); http://mevius.5ch.net/test/read.cgi/tech/1683600652/82
83: デフォルトの名無しさん (ラクッペペ MM86-F7IQ) [sage] 2023/05/23(火) 08:13:25.35 ID:Zuh94crlM Main でインスタンス化した、ファイル操作 クラスの設定を、別のクラスutilityの インスタンスで使いたい時ってどうしたら いいですか? ファイル開いておいて、デバッグ内容を そこに書き込みたい。 デバッグ終わったら不要になるんで、 あまりincludeとか変数とか増やしたくない。 VC++ のwindowsディスクトップアプリ です。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/83
84: デフォルトの名無しさん (スップ Sd8a-Cz+X) [] 2023/05/23(火) 08:33:03.17 ID:2zdXEqSEd 「ファイル操作クラス」ってなんのことか読み取れんが std::osteamのことか?std::ostreamを持ってる別の仕事があるクラスか? 差し支えなければ現状のクラス定義を貼ってほしいが http://mevius.5ch.net/test/read.cgi/tech/1683600652/84
85: デフォルトの名無しさん (ラクッペペ MM86-F7IQ) [sage] 2023/05/23(火) 09:15:28.22 ID:Zuh94crlM >>84 ファイル操作を含んだ、デバッグ用に用意した クラスです。Debugクラスとします。 Debug dbg; グローバルで‥ WWinMain(){ dbg.initial(); 色んな初期設定。 dbg.filename(debugfile) ; dbg.start(); ここで、std::ofstrm file.openしてる dbg.writefile(“なんかかきこむ”); Utilty utl; dbg.closefile(); } Class Utility{ この中で、mainの中で色々設定した内容で (mainで用意したdbgインスタンスのまま。) Debugクラス。使いたい。 開いたFileそのまま。。 } こんな感じですが、伝わりますか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/85
86: デフォルトの名無しさん (アウアウウー Sa2f-SwK+) [] 2023/05/23(火) 10:39:56.04 ID:X1m2WkvHa Utility util(dbg); http://mevius.5ch.net/test/read.cgi/tech/1683600652/86
87: デフォルトの名無しさん (ワッチョイ defb-a+t/) [sage] 2023/05/23(火) 12:30:30.59 ID:gLCisDzi0 関数の命名センスが短絡的やな 扇子を磨け http://mevius.5ch.net/test/read.cgi/tech/1683600652/87
88: デフォルトの名無しさん (スップ Sd8a-Cz+X) [] 2023/05/23(火) 12:40:55.81 ID:2zdXEqSEd std::ostreamはコピーを禁止してるから参照渡し(or ポインタ渡し)で受け取るのがいいかな class Utility{ Debug& _debug; public: Utility(Debug& debug) : _debug(debug) {} void f(){ _debug.writefile(...); } }; int main(){ ... Utility utl(dbg); } http://mevius.5ch.net/test/read.cgi/tech/1683600652/88
89: デフォルトの名無しさん (アウアウウー Sa2f-k5Su) [sage] 2023/05/23(火) 13:00:20.12 ID:zQ9auONPa Debugをシングルトン化しておけばいいのでは。 そうすれば、utilityもMainもDebugの定義を読むだけで、お互いに無関心でいられる。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/89
90: デフォルトの名無しさん (スップ Sdea-9ehv) [sage] 2023/05/23(火) 13:07:36.09 ID:Gn7U56ehd staticおじさんになるんだよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/90
91: デフォルトの名無しさん (ワッチョイ ffda-dfFb) [sage] 2023/05/23(火) 13:19:59.30 ID:4jUsmOvf0 禁じ手 グローバルおじさん http://mevius.5ch.net/test/read.cgi/tech/1683600652/91
92: デフォルトの名無しさん (ワッチョイ 635f-cbOI) [sage] 2023/05/23(火) 14:52:04.84 ID:HWUzxVfV0 #ifdef NDEBUG #define DEBUG_PUTLN(line) #else #define DEBUG_PUTLN(line) dbg.writefile(line) #endif http://mevius.5ch.net/test/read.cgi/tech/1683600652/92
93: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/23(火) 20:11:47.19 ID:QG1lXeie0 シングルトンって実質はグローバル変数そのものなんだけどな http://mevius.5ch.net/test/read.cgi/tech/1683600652/93
94: デフォルトの名無しさん (ワッチョイ dbd4-3DEL) [sage] 2023/05/23(火) 20:33:02.99 ID:H3Kl0Etq0 クラス定義がそもそもグローバルだからな http://mevius.5ch.net/test/read.cgi/tech/1683600652/94
95: デフォルトの名無しさん (ワッチョイ ffda-dfFb) [sage] 2023/05/23(火) 23:59:19.62 ID:4jUsmOvf0 int i をグローバル変数にしてたおじさん居たな 理由聞いたら書くの面倒だからとか http://mevius.5ch.net/test/read.cgi/tech/1683600652/95
96: デフォルトの名無しさん (アウアウウー Sa2f-pkzb) [] 2023/05/24(水) 01:56:30.90 ID:EzFDCa2Ya 全部シングルトンおじさんとglobalおじさんは一人でもいると周りがめっちゃ迷惑やな http://mevius.5ch.net/test/read.cgi/tech/1683600652/96
97: デフォルトの名無しさん (ワンミングク MM3a-F7IQ) [sage] 2023/05/24(水) 14:31:10.50 ID:VF8oVK+zM ありがとう。 やっばり、Utility の中にも色々書く必要あり ですね。 デバッグのためだけにUtility2 3 4全部直すのも と思ってたけど、諦めて頑張ります。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/97
98: デフォルトの名無しさん (ワンミングク MM3a-F7IQ) [sage] 2023/05/24(水) 14:34:53.03 ID:VF8oVK+zM external でインスタンス渡して、 global.h さんだけincludeしてできないかなと、 甘く考えてた時もありました。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/98
99: デフォルトの名無しさん (ワッチョイ 0705-vBUL) [sage] 2023/05/24(水) 23:58:03.92 ID:lCJuR93r0 世界で1つのint iをブンブン回してるのクソワロタ http://mevius.5ch.net/test/read.cgi/tech/1683600652/99
100: デフォルトの名無しさん (アウアウエー Sac2-cyLm) [sage] 2023/05/25(木) 00:06:30.18 ID:1obgfOJTa ループ内でサブルーチンとか呼んだときどうするんだろう・・・ http://mevius.5ch.net/test/read.cgi/tech/1683600652/100
101: デフォルトの名無しさん (ワッチョイ 1b02-XPFS) [] 2023/05/25(木) 00:18:52.33 ID:8bGOXla20 std::u16string_view stringView (string); stringView = {stringView.data () + 1, stringView.size () - 1}; これの2行目はどういう意味なんでしょうか?何かの文法のような気がするのですが、調べ切れていません・・・。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/101
102: デフォルトの名無しさん (ワッチョイ aa28-ff77) [sage] 2023/05/25(木) 00:55:03.39 ID:NKFrr9+j0 グローバルなオブジェクトのコンストラクタの中からprintf()とかのC言語の標準ライブラリ機能が呼べるのはワカルが coutとかのC++の標準ライブラリ機能は安全に呼べることは保証されるの? http://mevius.5ch.net/test/read.cgi/tech/1683600652/102
103: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/25(木) 01:41:17.05 ID:WiPfB6bJ0 される 規格上はstdに含まれる値(オブジェクト)はユーザーコードで参照されたら(特別の規定がない限り)常に有効でなければならない http://mevius.5ch.net/test/read.cgi/tech/1683600652/103
104: デフォルトの名無しさん (ワッチョイ 4aa5-owa4) [sage] 2023/05/25(木) 08:37:46.24 ID:2LyQ/gAw0 >>101 rangesのviewだろ http://mevius.5ch.net/test/read.cgi/tech/1683600652/104
105: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/25(木) 09:32:15.13 ID:G3dlC7U30 >>101 > stringView = {stringView.data () + 1, stringView.size () - 1}; ↑これは↓こう書いた場合と同じ。 stringView = std::u16string_view(stringView.data () + 1, stringView.size () - 1); http://mevius.5ch.net/test/read.cgi/tech/1683600652/105
106: デフォルトの名無しさん (スップ Sdea-9ehv) [sage] 2023/05/25(木) 11:13:48.89 ID:vvIauVZOd >>105 一見意味不明何だけど何て記法? http://mevius.5ch.net/test/read.cgi/tech/1683600652/106
107: デフォルトの名無しさん (ワッチョイ 0705-vBUL) [sage] 2023/05/25(木) 11:49:30.93 ID:tfjCiJA40 勉強中なんだけど、クラスの相互参照って気持ち悪い http://mevius.5ch.net/test/read.cgi/tech/1683600652/107
108: デフォルトの名無しさん (ワッチョイ 0705-vBUL) [sage] 2023/05/25(木) 12:04:14.41 ID:tfjCiJA40 もう、慣れた http://mevius.5ch.net/test/read.cgi/tech/1683600652/108
109: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/25(木) 12:08:58.16 ID:G3dlC7U30 >>106 たぶん直接的に表す用語は定義されてないと思う。 型の情報がないときは波括弧で表されたリストは initializer_list に推論されるけど 代入のときは代入演算子のオーバーロード解決時候補に関数シグネチャとして T& operator=(T&,T); が加わるので 結果としてこのとき生成される一時オブジェクトの初期化子という解釈になる。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/109
110: デフォルトの名無しさん (ブーイモ MMea-UgiX) [sage] 2023/05/25(木) 13:19:23.21 ID:E3OVdEtKM Uniform initialization 一様初期化とか統一初期化? https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html std::initializer_listも含んだ文法だね std::initializer_listの方か他のコンストラクタの方になるかはけっこうルールがややこし http://mevius.5ch.net/test/read.cgi/tech/1683600652/110
111: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/25(木) 19:45:10.69 ID:bX845kvIM c++はその{}の中に書くとclassの中に書いた変数が順番に初期化される いろいろ問題があるから他の言語で採用されていない c++は実用面で利点があると判断されたのかそのまんま http://mevius.5ch.net/test/read.cgi/tech/1683600652/111
112: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/25(木) 19:47:55.97 ID:bX845kvIM Brace initialization https://learn.microsoft.com/en-us/cpp/cpp/initializing-classes-and-structs-without-constructors-cpp?view=msvc-170 http://mevius.5ch.net/test/read.cgi/tech/1683600652/112
113: デフォルトの名無しさん (ワッチョイ 1b02-XPFS) [sage] 2023/05/26(金) 06:48:21.55 ID:kRDoXd150 >>105 ありがとうございます。 DTMのプラグイン(VST3)を作ってみたくて、それにはC++をある程度分かってないといけないそうなので、 参考書読んだりしているのですが、これれまでC++に全く触れてこなかったので、かなり面食らってます・・・。 サンプルのソースを見ても、いろいろな応用が含まれていて、前提となる知識がそれなりにないと分からないのかなと・・・。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/113
114: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/26(金) 10:03:10.85 ID:qewSmBpu0 >>113 C++ の仕様には未定義がたくさんあるので実際に動作させた結果から学ぶべきではないという事情がある。 ある程度は理屈で理解しておかないと簡単に破綻するよ。 実例を見ながら雰囲気で使うってのは出来ない言語だと思う。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/114
115: デフォルトの名無しさん (ワッチョイ 67c9-HmrL) [sage] 2023/05/26(金) 10:55:39.45 ID:Yaiov3bU0 しらない間に未定義踏んでて、コンパイラ変わったりしたときに挙動が変わるやつ http://mevius.5ch.net/test/read.cgi/tech/1683600652/115
116: デフォルトの名無しさん (ササクッテロラ Sp03-OHH9) [] 2023/05/26(金) 11:28:17.59 ID:VVS6yE6rp >ある程度は理屈で理解しておかないと に対しての >実際に動作させた結果から学ぶべきではない 極端じゃね? http://mevius.5ch.net/test/read.cgi/tech/1683600652/116
117: デフォルトの名無しさん (ワッチョイ 5f9c-uVPi) [sage] 2023/05/26(金) 11:37:41.87 ID:jtoHc2Cr0 >>113 chatgptにサンプルコードを解説させたら? http://mevius.5ch.net/test/read.cgi/tech/1683600652/117
118: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-FIIW) [sage] 2023/05/26(金) 13:02:36.82 ID:qewSmBpu0 >>116 「ちゃんとした資料を読まずに動作から何かを読み取ろうとするな」という話なので、 資料を読んだうえで手を動かして確認することまで否定してるわけじゃないよ。 少なくとも初手は入門書くらい読まんといかんという程度のことを言ってる。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/118
119: デフォルトの名無しさん (スッップ Sdea-Q5bc) [sage] 2023/05/26(金) 21:10:27.73 ID:u5i01UPgd 解脱させたらに見えたし http://mevius.5ch.net/test/read.cgi/tech/1683600652/119
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 883 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s