[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
44: はちみつ餃子◆8X2XSCHEME (ワッチョイ 423e-9NWm) [sage] 2023/11/09(木) 18:24:20.63 ID:viBVvDAP0(1) AAS
VC++ のことは知らんけどメンバ関数ポインタは関数ポインタより大きい実装になってる処理系がある。
メンバ関数ポインタを関数ポインタに変換した時点で呼び出すのに必要な情報が失われているかもしれない。
51(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 7f3e-zQu6) [sage] 2023/11/12(日) 11:02:37.63 ID:O0gb6uIB0(1/3) AAS
>>5050(1): デフォルトの名無しさん (ワッチョイ 1f63-1OcW) [sage] 2023/11/12(日) 10:07:59.74 ID:j2Y95IYf0(1/3) AAS
質問なのですが型Tの参照を返す関数 const T& foo() の戻り値をautoのいくつかのバリエーションで受けてアドレスを見て見たのですが
auto x = foo();
auto& y = foo();
const auto z = foo();
const auto& zz = foo();
const volatile auto& zzz = foo();
cout << "&original=" << &g_vec << endl; // &original = 00B013D8 (このアドレスは一例)
cout << "&x=" << &x << endl; // &x = 010FF8AC // コピー(意図しないかも?)
cout << "&y=" << &y << endl; // &y = 00B013D8 // 参照(OK)
cout << "&z=" << &z << endl; // &z = 010FF888 // コピー(意図しないかも?)
cout << "&zz=" << &zz << endl; // &zz = 00B013D8 // 参照(OK)
cout << "&zzz=" << &zzz << endl; // &zzz = 1 // !!!!
という行末コメントに記載の結果になったお
Q1. 参照で受けたい場合は auto でなく auto& とせねばならない、で正しい?
Q2. 間違えてauto で受けても動いてしまい発見し難いケースが多いと思うのですが
意図しないパフォーマンス低下になるので防ぐ対策とか無い?
Q3. zzzのアドレスが1になるのは一体……
MSVC2019使用、言語の設定はC++14、
A1. 単に auto としたときに参照になることはない。
参照として受け取りたい場合は auto& にせねばならないというのは正しい。
A2. 参照かどうかで自動的に場合分けして欲しいなら decltype(auto) とすればいいが……
参照で受けるのが正しい状況なのかどうかは状況による。
テンプレート内など自動的な場合分けが必要な場合を除いては参照は参照として明示したほうがよくない?
(個人的感想です。)
A3. いくつか用意されている operator<< の基本的なオーバーロードの内で bool にマッチするから。
void* もあるのだけれど C++ では任意のポインタは void* へは暗黙の型変換されないのでマッチング候補にならない。
アドレスとして解釈して欲しいなら void* へ明示的に型変換しないといけない。
153: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7f3e-TQnC) [sage] 2024/01/12(金) 17:12:14.63 ID:Z8/dVhwe0(2/2) AAS
想定される状況には対処しているならどこで想定漏れがあるかはやってみないとわからない。
経験を蓄積し続けるしかしょうがないんだよな。
蓄積がテストケースの形などになっているとより良いと思う。
304: デフォルトの名無しさん (ワッチョイ ef0a-qSkN) [sage] 2024/03/04(月) 07:57:02.63 ID:D3yk9beu0(1) AAS
>>302100%自分で書いてるコードなら未知の例外なんて起こらんだろ
話の筋理解してからレスつけろや三流
323(1): デフォルトの名無しさん (ワッチョイ b77c-0iQt) [sage] 2024/04/14(日) 14:49:11.63 ID:tTNkn9kB0(1) AAS
先月東京で標準化委員会の会議あったらしいけどなんか情報ないの?
353: デフォルトの名無しさん (ワッチョイ f344-7AaF) [sage] 2024/06/09(日) 20:56:05.63 ID:RJYm8+UN0(3/5) AAS
>>352352(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ f332-Oh5j) [sage] 2024/06/09(日) 15:07:14.43 ID:bthWHIYm0(1/2) AAS
WSL1 は (ある程度) Linux 互換のシステムコールを windows 内に実装することで実現していて Linux カーネルそのものではないので色々と不足がある。
(そのかわり Windows と親和性がある部分もある。)
WSL1 で用意してない Linux の機能に依存したアプリケーションは動かない。
まともな互換性が必要ならWSL2 を使いなさいという話なので手間をかけて WSL1 を積極的にはサポートしないと思う。
wsl2 ではlldbは問題なく動いてるんですか?
古いCPUなのでwsl2がインスコできないもんで
上のサイトはwslのバージョンは書いてなかったようですし
467: 447 (ワッチョイ d763-HdVQ) [sage] 2024/09/21(土) 20:13:25.63 ID:FUSKAHoo0(2/3) AAS
ていうか2週間ぐらい前から作っていたやつが今さっき完動すた、
477(1): デフォルトの名無しさん (ワッチョイ 77da-jZWQ) [sage] 2024/09/26(木) 18:22:32.63 ID:sl+cfKHN0(1/2) AAS
ならc++にRustの機能が取り込まれるのを待つ。
Rustが大人気になったら、さすがに標準委員の連中も初心者・コーダー向けの"Safe c++"をやる気になるだろ。
555(1): デフォルトの名無しさん (ワッチョイ 0b9a-V0hi) [sage] 2024/11/13(水) 01:53:29.63 ID:CoujH3FQ0(1) AAS
Objective-C++もよろしく
688: デフォルトの名無しさん (ワッチョイ e314-MHHu) [sage] 2025/02/17(月) 10:30:13.63 ID:afCQWVrm0(1) AAS
errnoのことでしょ、昔は本当にグローバル変数だったらしいし、そのせいか今も「errnoはグローバル変数です」って説明がそこら中に転がってる
そこセクション概要だし、後者と同じで別に言語仕様上の意味はないと思う
お客様の中にC/C++/UNIX/POSIXそれぞれにおけるerrnoの仕様/記述の歴史家はおられませんか
692(1): デフォルトの名無しさん (ワッチョイ 6eda-u+d+) [] 2025/02/24(月) 18:03:30.63 ID:0Dav+b+p0(1) AAS
現在C++を勉強しています
規格書を読んで分からないところはChatGPTに質問すれば
大体解決してしまうのですが、こんな楽な勉強方法でいいんでしょうか?
昔、入門書読んでは挫折を繰り返してたのがバカバカしくなりました
715: デフォルトの名無しさん (ワッチョイ 79d7-9m9g) [sage] 2025/03/05(水) 19:22:05.63 ID:P80r5h460(1) AAS
Clineとかじゃね?しらんけど
755(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ e932-exlI) [sage] 2025/03/17(月) 09:58:44.63 ID:xz+hBXXy0(2/3) AAS
単項 + の話題がウケたみたいなのでオマケで * の話もしようかな。
単項 * にクロージャを渡した場合は関数の参照になる。
つまり *[](){} としたら型は void(&)() ってことね。
式中に参照が現れたら参照が指す先の型に変換されて、関数指示子が現れたら関数ポインタに変換されるので多くの状況では最終的に関数ポインタになっちゃうんだけど。
822: デフォルトの名無しさん (ワッチョイ 45ba-wZYf) [sage] 2025/04/06(日) 09:14:57.63 ID:U2fAIE9I0(1) AAS
ああそっか、シグネチャ同じなら強制的にオーバーライドになるんだっけスマン
844: デフォルトの名無しさん (ワッチョイ 6e10-ZtHn) [sage] 2025/04/08(火) 02:19:24.63 ID:o1kEMolW0(1) AAS
rustだってどうせ20年もすれば後からあーすればよかったこーすればよかった言ってるよ
903: デフォルトの名無しさん (ワッチョイ fefb-Upwm) [sage] 2025/04/12(土) 17:11:32.63 ID:50hOhfEU0(2/2) AAS
>>901でも850は大半をシステムコールに頼ってる感じで言ってる気がするんだよな
そうでなきゃメインプログラム(呼び出し元の意)が足を引っ張るから、全体のスループットは下がるってわかるはずだし
なんなら、データを渡せば全部やってくれて結果を受けとるだけ、ぐらいに思ってる気がしないでもない
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s