前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
探検
C++相談室 part160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu2471デフォルトの名無しさん
2022/04/26(火) 21:13:27.66ID:2YgT13Zl >>470
それってwin限定ですけど?
それってwin限定ですけど?
472デフォルトの名無しさん
2022/04/26(火) 21:23:44.97ID:BZkG8yBX SEHの件もそうだが
Windows特有の話をC++の話だと思いこんでいるダメな人たちが一部いるよな
Windows特有の話をC++の話だと思いこんでいるダメな人たちが一部いるよな
473デフォルトの名無しさん
2022/04/26(火) 21:27:09.59ID:LprfjWj1 C++のfopenをCreateFileで実装するのは当然不可能
C++のfopenだけの独自の処理を追加し
C++のfopenとは仕様が異なる部分も対応し
C++のfopenのために書かれたコードがC++のfopenを実装している
C++のfopenだけの独自の処理を追加し
C++のfopenとは仕様が異なる部分も対応し
C++のfopenのために書かれたコードがC++のfopenを実装している
474デフォルトの名無しさん
2022/04/26(火) 21:28:50.73ID:y9ESXUU8 マイクロソフト信者はおかしい
475デフォルトの名無しさん
2022/04/26(火) 21:29:15.00ID:LprfjWj1 >>471-472
文句を言う前に環境書けよ
文句を言う前に環境書けよ
476デフォルトの名無しさん
2022/04/26(火) 21:47:04.72ID:2YgT13Zl477デフォルトの名無しさん
2022/04/26(火) 21:54:04.27ID:FD0QYxhU なんだかんだ言ってWimdowsは便利。
478デフォルトの名無しさん
2022/04/26(火) 22:01:46.99ID:LprfjWj1 >>476
それでいいのか?w
それでいいのか?w
479デフォルトの名無しさん
2022/04/26(火) 22:06:05.51ID:2YgT13Zl480デフォルトの名無しさん
2022/04/26(火) 23:56:13.17ID:FD0QYxhU >>479
ちょっと、説明してみて。
ちょっと、説明してみて。
481デフォルトの名無しさん
2022/04/26(火) 23:59:16.33ID:dZOuwtIw >>477
スペルミス笑った
スペルミス笑った
482デフォルトの名無しさん
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:dhIldcoi■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【日本は5位に】インドの名目GDPが日本を抜き5位へ… ★2 [BFU★]
- 【日本は5位に】インドの名目GDPが日本を抜き4位へ… ★3 [BFU★]
- 備蓄米、売り渡し価格47%安く 「店頭5キロ2000円」水準 [少考さん★]
- 【国民民主】支持率下落に危機感…山尾氏ら擁立にSNS「変な流れになってきた」 ★2 [蚤の市★]
- 【テレビ】『サンモニ』寺島実郎氏、高騰するコメに「日本人は賢くならないと」「各家庭が10%消費減らしたら価格は下がる」 [ネギうどん★]
- 消費税率「社会保障財源のため維持を」55% 食料品ゼロも反対多数--日経世論調査 ★2 [蚤の市★]
- 【朗報】小泉大臣「玄米60キロあたり11000円で放出します!」(前回22000円) [455679766]
- 農林水産省、5kgあたり963円で業者に備蓄米を売却!!!業者は5kg2160円で愚民に売却!!! [252835186]
- 日本政府、税金50兆円を使ってアメリカのための投資ファンドを設立へ。投資対象はアメリカのAI企業とインフラだけで孫正義に全権委任 [709039863]
- 野田佳彦「今の年金はあんこが入っていないんですよ。あんこなしのアンパンじゃやなせたかしさんに申し訳ないと思わないの?」 [402859164]
- 【悲報】万博の虫さん、自販機にびっしり張り付き、飲み物もろくに買えない事態に😭👉 [359965264]
- 失恋から立ち直れそうにない