前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
C++相談室 part160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu2482デフォルトの名無しさん
2022/04/27(水) 00:02:04.50ID:x9fHeieP >>481
パソコン買い換えたばかりで、キーボードを打ち間違えるんだけど、「わざとです」ってことにしとくわ。
パソコン買い換えたばかりで、キーボードを打ち間違えるんだけど、「わざとです」ってことにしとくわ。
483デフォルトの名無しさん
2022/04/27(水) 01:00:29.05ID:9dk3kBsG まじでバカばっか
皮肉でたとえ話してんのに、額面どおりうけるやつ。。。
お前らと仕事だったら大変だな
一から十まで説明しなきゃいけなそうw
皮肉でたとえ話してんのに、額面どおりうけるやつ。。。
お前らと仕事だったら大変だな
一から十まで説明しなきゃいけなそうw
484デフォルトの名無しさん
2022/04/27(水) 01:09:56.50ID:x9fHeieP >>483
ちょっと説明してみて。
ちょっと説明してみて。
485デフォルトの名無しさん
2022/04/27(水) 02:03:48.20ID:yb/peNBg 「デバッガに出力」ってそもそも正確にはどういう意味だろう
Unix系OSでのOutputDebugStringの代替ならこちらをどうぞ
syslogを使う方法、sysctlでデバッガを検知したときだけstderrに出力する方法等が紹介されている
https://stackoverflow.com/questions/417745/os-x-equivalent-to-outputdebugstring
Unix系OSでのOutputDebugStringの代替ならこちらをどうぞ
syslogを使う方法、sysctlでデバッガを検知したときだけstderrに出力する方法等が紹介されている
https://stackoverflow.com/questions/417745/os-x-equivalent-to-outputdebugstring
486デフォルトの名無しさん
2022/04/27(水) 02:05:24.94ID:gWhhdIlX C++の規格書にデバッガという単語は出てきますか?
487デフォルトの名無しさん
2022/04/27(水) 02:12:09.12ID:fiJD2DKf ID:2YgT13Zl「皮肉で例え話してるのに...」
大多数「(どこが皮肉なんだろう...)」
大多数「(どこが皮肉なんだろう...)」
488デフォルトの名無しさん
2022/04/27(水) 06:21:23.13ID:1MxxbY3W *(int*)0xffff0030 = 0x05; は環境に依存するが
C++標準の機能のみを使っていて独自拡張ではない
void our_customers_function();
our_customers_function();
これもそうだ
非標準の話をするなという原理主義者は
こういうのは受け入れるということか?
C++標準の機能のみを使っていて独自拡張ではない
void our_customers_function();
our_customers_function();
これもそうだ
非標準の話をするなという原理主義者は
こういうのは受け入れるということか?
489デフォルトの名無しさん
2022/04/27(水) 06:44:04.98ID:8t/7qtgE >>488
お前は何と戦っているんだ?
お前は何と戦っているんだ?
490デフォルトの名無しさん
2022/04/27(水) 06:55:22.54ID:1MxxbY3W 何とってちゃんと書いてんだろ
491デフォルトの名無しさん
2022/04/27(水) 07:00:37.34ID:gWhhdIlX そろそろC++標準化委員会2ちゃんねる支部作ろうぜ
492デフォルトの名無しさん
2022/04/27(水) 07:47:51.58ID:BxFepXA5 今どき2ちゃんねるって…
493デフォルトの名無しさん
2022/04/27(水) 23:09:34.58ID:9dk3kBsG >>491
おれ、アンドレイ役でいいか
おれ、アンドレイ役でいいか
494デフォルトの名無しさん
2022/04/29(金) 14:30:18.41ID:QTN7M4PZ >>493
いや、エピステーメー役でお願いします。
いや、エピステーメー役でお願いします。
495デフォルトの名無しさん
2022/04/29(金) 19:12:43.62ID:g4xa57bn じぁあ俺は江添やるわ
496はちみつ餃子 ◆8X2XSCHEME
2022/04/29(金) 20:24:36.60ID:1rxQCQBS 江添はもう C++ にはやる気なくしてるっぽいぞ。
497デフォルトの名無しさん
2022/04/29(金) 20:44:15.30ID:+Yy6lNMl 江副さんは今は何に興味あるのかしら
なんでc++やる気なくなったんだろ(´・ω・`)
なんでc++やる気なくなったんだろ(´・ω・`)
498はちみつ餃子 ◆8X2XSCHEME
2022/04/29(金) 21:36:57.56ID:1rxQCQBS >>497
今は C++ 関連ではない仕事をやっているので C++ に対して時間が取れないということと、
C++20 に追加された一部の機能 (ロケールまわり?) に懐疑的だということは江添のブログに数年前に書かれている。
彼は C++ の規格については強い関心を持っていたし解説・教育にも熱心だったが、
プログラミング自体はそんなに意欲的な感じではないんだよな。
好きにやれるポジションを失ったことでやる気をなくしたんだろう。
細かい心情の機微はわからんけどな。
今は C++ 関連ではない仕事をやっているので C++ に対して時間が取れないということと、
C++20 に追加された一部の機能 (ロケールまわり?) に懐疑的だということは江添のブログに数年前に書かれている。
彼は C++ の規格については強い関心を持っていたし解説・教育にも熱心だったが、
プログラミング自体はそんなに意欲的な感じではないんだよな。
好きにやれるポジションを失ったことでやる気をなくしたんだろう。
細かい心情の機微はわからんけどな。
499デフォルトの名無しさん
2022/04/29(金) 22:32:49.28ID:0jFDYffV てっきり素行不良が祟ってパブリックな場で出禁食らったのかと
500デフォルトの名無しさん
2022/04/29(金) 22:37:01.98ID:HFxeU7J0 ( ^ω^)もうC++の規格に熱心な人はいないんですかお?
501デフォルトの名無しさん
2022/04/29(金) 22:39:33.37ID:IgththV2 C++とは仕事の付き合いなので
それ以上に彼のことを知ろうとは思いません
それ以上に彼のことを知ろうとは思いません
502デフォルトの名無しさん
2022/04/29(金) 22:42:26.90ID:ANHZfN1C MZうyちゃーーーん♪はこっちに戻ってたのかw
503デフォルトの名無しさん
2022/04/29(金) 23:32:54.20ID:fFwxA39Q 江添なんて仕様把握だけで俺すげーしたかっただけの奴だからな。
それすら満足にできなくなっていじけてるんだろ。
それすら満足にできなくなっていじけてるんだろ。
504デフォルトの名無しさん
2022/04/29(金) 23:40:47.95ID:rnNwZVLJ プログラムの書き方的なところへの興味はどうなんじゃろうね
505はちみつ餃子 ◆8X2XSCHEME
2022/04/29(金) 23:44:21.28ID:1rxQCQBS 江添が仕事で実務的なプログラムを C++ で書いたことがあるのかはようわからんが、
少なくとも外部に発表したのは文章ばかりで、完成したアプリケーションを発表したことはほとんどない。
俺が知っているのは彼がドワンゴに入るよりもずっと前に Windows 用ソフト (というかとあるソフトのアドオン) を
公開したのを見たのが最初で最後だ。
少なくとも外部に発表したのは文章ばかりで、完成したアプリケーションを発表したことはほとんどない。
俺が知っているのは彼がドワンゴに入るよりもずっと前に Windows 用ソフト (というかとあるソフトのアドオン) を
公開したのを見たのが最初で最後だ。
506デフォルトの名無しさん
2022/04/29(金) 23:54:37.33ID:Geo4ukio 仕様ばかりに詳しくても何の役にも立たない
大抵の仕事は言語の細かな仕様まで知らなくてもC++98程度の知識でおおむねこなせるし
大抵の仕事は言語の細かな仕様まで知らなくてもC++98程度の知識でおおむねこなせるし
507デフォルトの名無しさん
2022/04/30(土) 00:06:07.15ID:X9Bb5Kqd さすがにやだよ、c++11より前のは
508はちみつ餃子 ◆8X2XSCHEME
2022/04/30(土) 00:20:09.66ID:jfGNsSDk 程度問題だわな。
俺も今の C++ は C++11 が最低ライン (もちろん可能ならもっと新しい版) だと考えている。
あまり古すぎるのはかえって学ぶのに資料が見つけにくくなっている場合もある。
俺も今の C++ は C++11 が最低ライン (もちろん可能ならもっと新しい版) だと考えている。
あまり古すぎるのはかえって学ぶのに資料が見つけにくくなっている場合もある。
509デフォルトの名無しさん
2022/04/30(土) 02:51:19.52ID:wKbezNiV C++11に詳しそうだから教えて
あるテンプレート関数に渡される関数ポインタ、メンバ関数ポインタ、ファンクタ、ラムダの
戻り値の型を取得する方法を教えて
template<class R,class E,class...A> R f(E&& e,A... a)
{
using TypeOfCallableExec=/*ここ*/;
//...
}
あるテンプレート関数に渡される関数ポインタ、メンバ関数ポインタ、ファンクタ、ラムダの
戻り値の型を取得する方法を教えて
template<class R,class E,class...A> R f(E&& e,A... a)
{
using TypeOfCallableExec=/*ここ*/;
//...
}
510デフォルトの名無しさん
2022/04/30(土) 03:49:46.04ID:zRkNYUvD >>509
C++17より前ならstd::result_of
C++17以降ならstd::invoke_result
return e(a...); とするつもりならRは不要。
返り値型はdecltype(auto)、
TypeOfCallableExec=decltype(e(a...));か、
TypeOfCallableExec=typename std::result_of<F(A...)>::type;
とでもしておけばいい
C++17より前ならstd::result_of
C++17以降ならstd::invoke_result
return e(a...); とするつもりならRは不要。
返り値型はdecltype(auto)、
TypeOfCallableExec=decltype(e(a...));か、
TypeOfCallableExec=typename std::result_of<F(A...)>::type;
とでもしておけばいい
511デフォルトの名無しさん
2022/04/30(土) 05:43:50.13ID:wKbezNiV あいかわらず、いい加減な回答だなw
それでやってみろよwwww
それでやってみろよwwww
512デフォルトの名無しさん
2022/04/30(土) 07:04:59.56ID:2aZ7UOTr 構造体中の配列の特定の要素に対するメンバポインタって何で使えないの?
struct STRUCT {
int array[4];
};
int STRUCT::*pt = &STRUCT::array[2];
こんな事をやりたい
offsetofを使えって?
struct STRUCT {
int array[4];
};
int STRUCT::*pt = &STRUCT::array[2];
こんな事をやりたい
offsetofを使えって?
513デフォルトの名無しさん
2022/04/30(土) 09:31:27.50ID:OR8SZm5l >>512
同じことを思ってる人がいるけどダメっぽい
https://stackoverflow.com/questions/674635/member-pointer-to-array-element
同じことを思ってる人がいるけどダメっぽい
https://stackoverflow.com/questions/674635/member-pointer-to-array-element
514デフォルトの名無しさん
2022/04/30(土) 10:58:35.53ID:pjMZxOoQ 質問ですが
他から渡されてきたstd::cout(ていうかstd::ostream)について
std::cout << std::left; (またはstd::right)
std::cout << std::setfill('_')
の状態が現在どうーなっているか知る方法って何かあるんでしたっけ
あと、ストリームに対して(独自のstd::left/std::right、std::setfill()を設定を含む)
独自フォーマットで出力した後ストリームの状態を元に戻す方法って何かあるんでしたっけ
std::ostringstream os; としてosに対してで独自フォーマットで出力して
std::cout << os.str();
ぐらい?
しかしこれにしてもstd::cout << setw(10000) << std::left << std::setfill('0');
とかされていたら左詰め/右詰め/パディングが独自フォーマットとして制御し切れていない気が……
他から渡されてきたstd::cout(ていうかstd::ostream)について
std::cout << std::left; (またはstd::right)
std::cout << std::setfill('_')
の状態が現在どうーなっているか知る方法って何かあるんでしたっけ
あと、ストリームに対して(独自のstd::left/std::right、std::setfill()を設定を含む)
独自フォーマットで出力した後ストリームの状態を元に戻す方法って何かあるんでしたっけ
std::ostringstream os; としてosに対してで独自フォーマットで出力して
std::cout << os.str();
ぐらい?
しかしこれにしてもstd::cout << setw(10000) << std::left << std::setfill('0');
とかされていたら左詰め/右詰め/パディングが独自フォーマットとして制御し切れていない気が……
515デフォルトの名無しさん
2022/04/30(土) 11:11:18.79ID:pjMZxOoQ つか実はostreamは使い終わったら、独自に使った書式指定について
cout << resetiosflags(...);
でリセットするのが作法?
cout << resetiosflags(...);
でリセットするのが作法?
516デフォルトの名無しさん
2022/04/30(土) 11:40:17.38ID:u0zlL0D0 ('_')と('0')が顔文字に見えた
517デフォルトの名無しさん
2022/04/30(土) 11:49:21.15ID:qP6dl9mx ('_')
||
| つ('0')
||
| つ('0')
518デフォルトの名無しさん
2022/04/30(土) 11:50:48.98ID:xinPqoeI >>514
left/right は os.flags() の戻り値を std::ios_base::{left, right} でマスクして確認
https://en.cppreference.com/w/cpp/io/ios_base/flags
書式設定全体の保存・復元は一時的な ostream を作って copyfmt でやるのがいいらしいよ
https://stackoverflow.com/questions/2273330/restore-the-state-of-stdcout-after-manipulating-it
left/right は os.flags() の戻り値を std::ios_base::{left, right} でマスクして確認
https://en.cppreference.com/w/cpp/io/ios_base/flags
書式設定全体の保存・復元は一時的な ostream を作って copyfmt でやるのがいいらしいよ
https://stackoverflow.com/questions/2273330/restore-the-state-of-stdcout-after-manipulating-it
519デフォルトの名無しさん
2022/04/30(土) 12:10:48.58ID:pjMZxOoQ >>518
>left/right は os.flags() の戻り値を std::ios_base::{left, right} でマスクして確認
なるほど……
>書式設定全体の保存・復元は一時的な ostream を作って copyfmt でやるのがいいらしいよ
なるほど……
書式設定を記憶するだけのためにstd::iosオブジェクトを作るのかmjk、、、
>left/right は os.flags() の戻り値を std::ios_base::{left, right} でマスクして確認
なるほど……
>書式設定全体の保存・復元は一時的な ostream を作って copyfmt でやるのがいいらしいよ
なるほど……
書式設定を記憶するだけのためにstd::iosオブジェクトを作るのかmjk、、、
520デフォルトの名無しさん
2022/04/30(土) 13:59:17.37ID:M4ctbMgQ https://ideone.com/JPtQV9
VCでは通らないが、GCCでは通るコード。正しデバッグ中・・・。
ブロックソート書いたんですよ、ブロックソート。
安定ソート書けないから横着してアルゴリズムヘッダーのヤツ使ったんですよ。
落ちるんですよ。
誰かたすけて!
VCでは通らないが、GCCでは通るコード。正しデバッグ中・・・。
ブロックソート書いたんですよ、ブロックソート。
安定ソート書けないから横着してアルゴリズムヘッダーのヤツ使ったんですよ。
落ちるんですよ。
誰かたすけて!
521デフォルトの名無しさん
2022/05/01(日) 05:16:07.73ID:RKDZOMoi おまえらさぁ
openAPIがロハなのになんでいつまでもVCなんか使ってるのさ?
openAPIがロハなのになんでいつまでもVCなんか使ってるのさ?
522デフォルトの名無しさん
2022/05/01(日) 05:48:25.64ID:TlTI4EO+ 円盤でお願いします
523デフォルトの名無しさん
2022/05/01(日) 07:28:35.35ID:cO13JXSW >>520
31行目で A = B = DD; しないで return してしまってるけどいいの?
31行目で A = B = DD; しないで return してしまってるけどいいの?
524デフォルトの名無しさん
2022/05/01(日) 09:52:18.27ID:nBd2wfSC525デフォルトの名無しさん
2022/05/01(日) 14:31:24.77ID:ukM6vErn あるプロセスで、変数の型とアドレスはわかってるものとして、
それをc++のプログラムから書き換えるにはどうすればいいんですかね?
調べても情報があまり出てこなくて...
それをc++のプログラムから書き換えるにはどうすればいいんですかね?
調べても情報があまり出てこなくて...
526デフォルトの名無しさん
2022/05/01(日) 14:43:19.26ID:9TCpWNNH527デフォルトの名無しさん
2022/05/01(日) 14:53:21.11ID:vJsN8meg こんなんでいいんじゃね
mytype* p = reinterprit_cast<mytype*>(0xaabbccdd);
*p = 1000
mytype* p = reinterprit_cast<mytype*>(0xaabbccdd);
*p = 1000
528デフォルトの名無しさん
2022/05/01(日) 14:55:46.12ID:t4/NhzPt 他のプロセスからってことじゃないの
WindowsならReadProcessMemory/WriteProcessMemory
WindowsならReadProcessMemory/WriteProcessMemory
529デフォルトの名無しさん
2022/05/01(日) 14:56:17.49ID:KjQtFKQ9 アドレスがわかってると言いながら実は空間が違うとか。
530デフォルトの名無しさん
2022/05/01(日) 14:58:07.61ID:ukM6vErn すみません、説明不足でした。
自分がやりたいのは、あるプロセスの変数をc++で作った別のプログラムから書き換えることです。
a.exeが持つ変数をb.exeから書き換える、みたいなことです。
自分がやりたいのは、あるプロセスの変数をc++で作った別のプログラムから書き換えることです。
a.exeが持つ変数をb.exeから書き換える、みたいなことです。
531デフォルトの名無しさん
2022/05/01(日) 15:03:02.21ID:9TCpWNNH linux的にはptraceを調べるとか…
532デフォルトの名無しさん
2022/05/01(日) 15:07:04.74ID:t4/NhzPt リバースエンジニアリングでしょ
環境依存だしここで有益な答えが返ってくるとは思えない
環境依存だしここで有益な答えが返ってくるとは思えない
533デフォルトの名無しさん
2022/05/01(日) 15:07:49.80ID:k85aGXIq 実行時に書き換えるならば排他制御が必須
534デフォルトの名無しさん
2022/05/01(日) 15:11:01.84ID:Z9kcLIQb スタック変数やヒープ変数を実行前に書き換えるのは不可能
535デフォルトの名無しさん
2022/05/01(日) 15:13:35.34ID:ukM6vErn 皆さんありがとうございます。
>>528さんのものが使えるかもしれないので、一回調べながら触ってみます。
>>528さんのものが使えるかもしれないので、一回調べながら触ってみます。
536デフォルトの名無しさん
2022/05/01(日) 15:47:36.66ID:V8gMjhaX >>534
プロセスって言ってんだから実行中の話だろうjk
プロセスって言ってんだから実行中の話だろうjk
537デフォルトの名無しさん
2022/05/01(日) 16:19:28.57ID:pvwx8N/t >>521
oneapi でなく openapi というのがあるの?
oneapi でなく openapi というのがあるの?
538デフォルトの名無しさん
2022/05/01(日) 16:52:28.16ID:ukM6vErn readprocessmemory, writeprocessmomoryの詳しい使い方が載ってるサイトってありますかね...
539デフォルトの名無しさん
2022/05/01(日) 18:15:25.12ID:fSFndGfw540はちみつ餃子 ◆8X2XSCHEME
2022/05/01(日) 18:35:08.33ID:qIevfvlJ >>538
https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory
https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory
プロセスハンドルとアドレスと大きさを指示するだけで難しいことはなんもない。
ターゲットになるプロセスを見つける方法とかはたぶんこのあたりが参考になるかな……
https://docs.microsoft.com/ja-jp/windows/win32/psapi/enumerating-all-processes
公式ドキュメントは全体像が掴みづらい場合もあるけど、
この場合はたいした規模の話でもないからこれで十分でしょ。
外部のプロセスから逐一コピーして操作するのが面倒なら DLL Injection でプロセス内にプログラムを注入する方法もあるよ。
https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory
https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory
プロセスハンドルとアドレスと大きさを指示するだけで難しいことはなんもない。
ターゲットになるプロセスを見つける方法とかはたぶんこのあたりが参考になるかな……
https://docs.microsoft.com/ja-jp/windows/win32/psapi/enumerating-all-processes
公式ドキュメントは全体像が掴みづらい場合もあるけど、
この場合はたいした規模の話でもないからこれで十分でしょ。
外部のプロセスから逐一コピーして操作するのが面倒なら DLL Injection でプロセス内にプログラムを注入する方法もあるよ。
541デフォルトの名無しさん
2022/05/01(日) 18:37:39.22ID:dvAJjIlE srd::vectorも最初は誰がこんなクソコンテナ使うんだよっ
て言われてて皆好き勝手に独自のコンテナ実装してたらしいなw
て言われてて皆好き勝手に独自のコンテナ実装してたらしいなw
542デフォルトの名無しさん
2022/05/01(日) 18:42:14.03ID:Rd1MW222 >>539
まあ結構ニッチだと言うのとリンク先にも書いてある通り
struct STRUCT {
int* array;
};
int STRUCT::*pt = &STRUCT::array[2];
ってやられたら違うコードにしないといけないから面倒なんだろうね
まあ結構ニッチだと言うのとリンク先にも書いてある通り
struct STRUCT {
int* array;
};
int STRUCT::*pt = &STRUCT::array[2];
ってやられたら違うコードにしないといけないから面倒なんだろうね
543デフォルトの名無しさん
2022/05/01(日) 18:48:00.04ID:ukM6vErn >>540
ありがとうございます!試してみます!
ありがとうございます!試してみます!
544デフォルトの名無しさん
2022/05/01(日) 18:54:08.08ID:fSFndGfw >>542
その例を上げるのはメンバポインタがわかってない人と思う
その例を上げるのはメンバポインタがわかってない人と思う
545デフォルトの名無しさん
2022/05/01(日) 19:01:02.73ID:fSFndGfw その例は構造体の中のintを指してないから
出来ないのは当たり前
出来ないのは当たり前
546デフォルトの名無しさん
2022/05/01(日) 21:50:45.69ID:t6KXJfhj547デフォルトの名無しさん
2022/05/01(日) 22:03:23.83ID:Rd1MW222 >>544-545
だからできないって話なんだがw
だからできないって話なんだがw
548デフォルトの名無しさん
2022/05/02(月) 06:08:38.44ID:9K9pP+jI struct STRUCT
{
int array[2];
};
arrayはSTRUCT直属のメンバだからメンバポインタで指せるが
array[1]はあくまでarrayの要素であってSTRUCT直属のメンバではないので
これを指すようなメンバポインタは存在しない
{
int array[2];
};
arrayはSTRUCT直属のメンバだからメンバポインタで指せるが
array[1]はあくまでarrayの要素であってSTRUCT直属のメンバではないので
これを指すようなメンバポインタは存在しない
549デフォルトの名無しさん
2022/05/02(月) 06:48:46.84ID:LNpTFVSP classのメンバ関数型が存在しない理由って何?
classのメンバ関数へのポインタのことではないよ
関数型も関数への参照も関数へポインタも認めてるのになぜメンバ関数は存在しないんだ
classのメンバ関数へのポインタのことではないよ
関数型も関数への参照も関数へポインタも認めてるのになぜメンバ関数は存在しないんだ
550デフォルトの名無しさん
2022/05/02(月) 07:02:09.71ID:8dvAAWOX できない話をいつまでもしてるのは脳に何か障害でもあるのか?
551デフォルトの名無しさん
2022/05/02(月) 07:08:05.16ID:LNpTFVSP 理由を問うているんだけ、理解できないのか
脳に何か障害でもあるのか?
脳に何か障害でもあるのか?
552デフォルトの名無しさん
2022/05/02(月) 07:36:33.49ID:9K9pP+jI void func(void (CLASS::*pm)(), CLASS& ref)
{
*pm; //Error. メンバ関数ポインタには逆参照演算子が存在しない
(ref.*pm)(); //pmを実体化するには.*か->*しかない
}
メンバ関数型というのがもし存在するなら*pmのはずだが現実にはできない
{
*pm; //Error. メンバ関数ポインタには逆参照演算子が存在しない
(ref.*pm)(); //pmを実体化するには.*か->*しかない
}
メンバ関数型というのがもし存在するなら*pmのはずだが現実にはできない
553デフォルトの名無しさん
2022/05/02(月) 07:56:46.72ID:LNpTFVSP 出来るできないを聞いているわけじゃない・・・
日本語理解できますか?
日本語理解できますか?
554デフォルトの名無しさん
2022/05/02(月) 08:09:32.17ID:rW7ccw75 単純な逆参照*pmができるメンバ関数型はすべからくクロージャなるべし?
class Foo a; // std::string Foo::someMemberFunc(int a, int b, double c)を持つ
class Bar b; // std::string Bar::anotherMemberFunc(int a, int b, double c)を持つ
auto someMemberFunc = [=, &a](int a, int b, double c) -> std::string { return a.someMemberFunc(a, b, c); };
auto anotherMemberFunc = [=, &b](int a, int b, double c) -> std::string { return b.anotherMemnberFunc(a, b, c); };
std::function<std::string(int, int, double>* pm;
pm = &someMemberFunc;
std::cout << (*pm)(1, 2, 3.4); // a.someMemberFunc()が呼ばれる
pm = &anotherMemberFunc;
std::cout << (*pm)(5, 6, 7.8); // b.anotherMemberFunc()が呼ばれる
std::function<std::string(int, int, double)> fn = *pm; // b.anotherMemberFunc()が呼ばれるためのクロージャにデリファレンスされる
class Foo a; // std::string Foo::someMemberFunc(int a, int b, double c)を持つ
class Bar b; // std::string Bar::anotherMemberFunc(int a, int b, double c)を持つ
auto someMemberFunc = [=, &a](int a, int b, double c) -> std::string { return a.someMemberFunc(a, b, c); };
auto anotherMemberFunc = [=, &b](int a, int b, double c) -> std::string { return b.anotherMemnberFunc(a, b, c); };
std::function<std::string(int, int, double>* pm;
pm = &someMemberFunc;
std::cout << (*pm)(1, 2, 3.4); // a.someMemberFunc()が呼ばれる
pm = &anotherMemberFunc;
std::cout << (*pm)(5, 6, 7.8); // b.anotherMemberFunc()が呼ばれる
std::function<std::string(int, int, double)> fn = *pm; // b.anotherMemberFunc()が呼ばれるためのクロージャにデリファレンスされる
555デフォルトの名無しさん
2022/05/02(月) 09:03:37.01ID:8dvAAWOX >>553
自分が欲しい機能は全て揃ってないとおかしいとかガイジすぎだろw
自分が欲しい機能は全て揃ってないとおかしいとかガイジすぎだろw
556デフォルトの名無しさん
2022/05/02(月) 09:06:55.61ID:6vh8Gvry あれが「揃ってないとおかしい」と読める読解力の方に問題がありそうだが
557デフォルトの名無しさん
2022/05/02(月) 10:01:16.40ID:8dvAAWOX 理由「仕様です」ということも理解できないの?
まじで脳障害を疑った方がいいぞw
まじで脳障害を疑った方がいいぞw
558デフォルトの名無しさん
2022/05/02(月) 10:12:11.24ID:Lc/e3xtf 仕様がクソすぎる
559デフォルトの名無しさん
2022/05/02(月) 11:03:41.58ID:/YgtvrIl 無能ワイ、メンバ関数型がなんなのかよく分からない
560デフォルトの名無しさん
2022/05/02(月) 11:30:26.72ID:m3O8Sm5F ちんちんシュッ!シュッ!シュッ!
561デフォルトの名無しさん
2022/05/02(月) 11:53:48.09ID:JwCZPFEF >>549
適切な規格化(めんどくさい)や新たな実装(めんどくさい)が必要なわりに見合う有用性が無いと考えられているからでしょう。
適切な規格化(めんどくさい)や新たな実装(めんどくさい)が必要なわりに見合う有用性が無いと考えられているからでしょう。
562デフォルトの名無しさん
2022/05/02(月) 12:05:29.20ID:9K9pP+jI >>553
いいだろう
では、仮にあったとしてどんな使い方を考えているんだ?
decltype(CLASS::func) mirror;
CLASS obj;
obj.mirror(); //これでobj.func();になればいいのか?
いいだろう
では、仮にあったとしてどんな使い方を考えているんだ?
decltype(CLASS::func) mirror;
CLASS obj;
obj.mirror(); //これでobj.func();になればいいのか?
563デフォルトの名無しさん
2022/05/02(月) 12:29:35.60ID:9K9pP+jI operator ?: がない理由も
仮にあったとして以下略への答えがないからだね
仮にあったとして以下略への答えがないからだね
564デフォルトの名無しさん
2022/05/02(月) 12:40:24.60ID:+FOPwlZG >>559
安心しろ。俺もわからん。
安心しろ。俺もわからん。
565デフォルトの名無しさん
2022/05/02(月) 13:38:33.63ID:WQmMvuhJ566はちみつ餃子 ◆8X2XSCHEME
2022/05/02(月) 13:50:32.84ID:dhIldcoi >>565
メンバでないものをメンバポインタの範囲で扱うことは出来るけど「やるべきでない」からやってないって話だろ。
まあそれを言ったら C++ には奇妙なものはいっぱいあるから今更ではあるけどさ。
それに offsetof は offsetof で色々と制約があるからなぁ。
特にスタンダードレイアウトである必要がある (そうでないときは未定義) というのがなかなか厳しい。
可能な場合には型システムの枠組み内で扱いたい。
メンバでないものをメンバポインタの範囲で扱うことは出来るけど「やるべきでない」からやってないって話だろ。
まあそれを言ったら C++ には奇妙なものはいっぱいあるから今更ではあるけどさ。
それに offsetof は offsetof で色々と制約があるからなぁ。
特にスタンダードレイアウトである必要がある (そうでないときは未定義) というのがなかなか厳しい。
可能な場合には型システムの枠組み内で扱いたい。
567デフォルトの名無しさん
2022/05/02(月) 14:01:47.48ID:8dvAAWOX >>565
仕様として出来ないことと実現不可能なことの区別もつかないのかよw
仕様として出来ないことと実現不可能なことの区別もつかないのかよw
568デフォルトの名無しさん
2022/05/02(月) 16:26:17.62ID:WQmMvuhJ >>566
配列の要素はメンバ
ではないと
まあそんな言葉の定義はどうでもいいとして
なぜやるべきでないと思う?
出来たら何がまずい?
何が不都合?
誰もこの点にふれてない
ただ単に仕様と言われても
その仕様が糞と思うだけ
配列の要素はメンバ
ではないと
まあそんな言葉の定義はどうでもいいとして
なぜやるべきでないと思う?
出来たら何がまずい?
何が不都合?
誰もこの点にふれてない
ただ単に仕様と言われても
その仕様が糞と思うだけ
569デフォルトの名無しさん
2022/05/02(月) 16:53:07.08ID:9K9pP+jI >>568
よくわからんが、こう言いたいの?
struct STRUCT
{
int array[2];
};
int STRUCT::*pm;
pm = &STRUCT::array[0];
pm = &STRUCT::array[1];
STRUCT obj;
(obj.*pm) = 1; //obj.array[1] = 1; こうなるべき
よくわからんが、こう言いたいの?
struct STRUCT
{
int array[2];
};
int STRUCT::*pm;
pm = &STRUCT::array[0];
pm = &STRUCT::array[1];
STRUCT obj;
(obj.*pm) = 1; //obj.array[1] = 1; こうなるべき
570はちみつ餃子 ◆8X2XSCHEME
2022/05/02(月) 17:15:19.01ID:dhIldcoi571デフォルトの名無しさん
2022/05/02(月) 17:32:38.90ID:9K9pP+jI572デフォルトの名無しさん
2022/05/02(月) 17:34:25.32ID:JwCZPFEF >>570
配列の要素がメンバでないことは、現状のメンバ変数へのポインタが配列要素に適用できない理由を示すものと思いますが、
メンバ変数へのポインタを配列要素に適用可能にするという拡張の話について「やるべきでない」という理由にはならないかと。
配列の要素がメンバでないことは、現状のメンバ変数へのポインタが配列要素に適用できない理由を示すものと思いますが、
メンバ変数へのポインタを配列要素に適用可能にするという拡張の話について「やるべきでない」という理由にはならないかと。
573はちみつ餃子 ◆8X2XSCHEME
2022/05/02(月) 17:56:52.90ID:dhIldcoi >>572
そいういう拡張はあり得ると思う。
私の感覚では (メンバ内の) 配列の要素を許すのだともはやメンバポインタではない何かだろうという意識で書いてた。
つまり、メンバポインタとしてやるべきではないということと、
メンバポインタを拡張して出来上がる何者かで出来るようにするというのは両立するってことね。
そいういう拡張はあり得ると思う。
私の感覚では (メンバ内の) 配列の要素を許すのだともはやメンバポインタではない何かだろうという意識で書いてた。
つまり、メンバポインタとしてやるべきではないということと、
メンバポインタを拡張して出来上がる何者かで出来るようにするというのは両立するってことね。
574デフォルトの名無しさん
2022/05/02(月) 18:01:04.13ID:+FOPwlZG なんとなくわかったけど、
c において配列を指す変数がポインタと同一視されるんだから、cを踏襲するc++でも配列を指す変数がポインタ扱いになるのはおかしなことじゃない。そうすると配列の要素はポインタの先になるので、配列を指すメンバー変数の要素もポインタの先になってメンバーじゃなくなりますな。
というか、こんなくだらないことでゴチャゴチャやってたの?
c において配列を指す変数がポインタと同一視されるんだから、cを踏襲するc++でも配列を指す変数がポインタ扱いになるのはおかしなことじゃない。そうすると配列の要素はポインタの先になるので、配列を指すメンバー変数の要素もポインタの先になってメンバーじゃなくなりますな。
というか、こんなくだらないことでゴチャゴチャやってたの?
575デフォルトの名無しさん
2022/05/02(月) 18:06:02.86ID:+FOPwlZG576デフォルトの名無しさん
2022/05/02(月) 18:23:20.44ID:WQmMvuhJ >>570
構造体の中の配列の各要素は当然構造体の一部
つまりメンバ
というのが私の認識だが
その結果はどうでも良い
ここを議論しても意味がない
単なる言葉の定義の話だから
そうじゃなくて
技術的な話をしたいわけで
以下なら&S::a1と出来る
これで実質&S::a[1]になる
struct S {
...
union {
int a[3];
struct {
int a0;
int a1;
int a2;
};
};
};
こんな事をやらないと出来ないのはなぜか?
構造体の中の配列の各要素は当然構造体の一部
つまりメンバ
というのが私の認識だが
その結果はどうでも良い
ここを議論しても意味がない
単なる言葉の定義の話だから
そうじゃなくて
技術的な話をしたいわけで
以下なら&S::a1と出来る
これで実質&S::a[1]になる
struct S {
...
union {
int a[3];
struct {
int a0;
int a1;
int a2;
};
};
};
こんな事をやらないと出来ないのはなぜか?
577デフォルトの名無しさん
2022/05/02(月) 18:27:19.33ID:WQmMvuhJ579デフォルトの名無しさん
2022/05/02(月) 18:40:58.17ID:HZ9CcBZq おじいさんみたいな改行と文体
580デフォルトの名無しさん
2022/05/02(月) 18:45:56.08ID:JwCZPFEF >>578
>576は抽象の問題は話していないので、そういうことにはならないかと。
言葉の定義が重要というならまず「メンバポインタ」などという未定義の用語を使うべきではないでしょうし。
なお>574の「配列を指す変数がポインタと同一視される」といった不正確な理解も、
厳密な定義を語るにあたっては前提が不適切と思います。
>576 などでは現行の pointer to data member を拡張した "pointer to subobject" とでも言うようなものの
可能性が探られているものと理解しています。
現状でそういった機能が無い理由は >561 になると思ってますが。
>576は抽象の問題は話していないので、そういうことにはならないかと。
言葉の定義が重要というならまず「メンバポインタ」などという未定義の用語を使うべきではないでしょうし。
なお>574の「配列を指す変数がポインタと同一視される」といった不正確な理解も、
厳密な定義を語るにあたっては前提が不適切と思います。
>576 などでは現行の pointer to data member を拡張した "pointer to subobject" とでも言うようなものの
可能性が探られているものと理解しています。
現状でそういった機能が無い理由は >561 になると思ってますが。
581デフォルトの名無しさん
2022/05/02(月) 18:53:30.65ID:WQmMvuhJ 配列にも入れ子の構造体にも使えない
offsetofの劣化コピーじゃ
何のためにわざわざ仕様追加したんだかわからんねえ
offsetofの劣化コピーじゃ
何のためにわざわざ仕様追加したんだかわからんねえ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- ホリエモンが政治家達を呼んで台湾有事について議論する動画を公開したんだけどお前らはこれの内容についてどう思う [317527133]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 自閉症が「んなっしょい」と連呼するお🏡
- 俺と空条承太郎との共通点あげてけwwww
