※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/
テンプレここまで
C++相談室 part154
レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/01/08(金) 17:54:00.55ID:0DW9z0rL
888デフォルトの名無しさん
2021/02/23(火) 22:20:52.65ID:u3MMsI1X889デフォルトの名無しさん
2021/02/23(火) 22:28:42.45ID:iu17pC6m890デフォルトの名無しさん
2021/02/23(火) 22:44:54.86ID:H7IAWcv9 [selector message]
Objective-Cが良かったな。
Objective-Cが良かったな。
891デフォルトの名無しさん
2021/02/24(水) 06:48:21.60ID:Vo6CI9FQ892はちみつ餃子 ◆8X2XSCHEME
2021/02/24(水) 15:54:28.46ID:EZ8EgbLC 現代的な Windows のフレームワークとしては C++/WinRT に力が入ってるみたいなんで、
今からはこれを使った方がよさげ
今からはこれを使った方がよさげ
893デフォルトの名無しさん
2021/02/24(水) 17:47:00.67ID:T43vsud+ P/Invokeともこれでおさらば、
と言いたいところだがネイティブC++をwrapするC++/WinRT自体はCLR上の言語なんじゃなかったっけ…
違ったっけ…
と言いたいところだがネイティブC++をwrapするC++/WinRT自体はCLR上の言語なんじゃなかったっけ…
違ったっけ…
894デフォルトの名無しさん
2021/02/24(水) 20:59:30.49ID:T43vsud+ C++/CXと混同すた、orz
895デフォルトの名無しさん
2021/02/25(木) 00:40:25.02ID:hxonNlh3 C++/CLIだよ(小声
896デフォルトの名無しさん
2021/02/25(木) 12:27:48.18ID:Kp+Bp4Dl int (int)型のコールバック関数ポインタにて、一応呼ばれるのでnullはマズイけど不要なので空にしたいという場合に
int () { return 0; }という引数が一致しない空関数へのポインタを渡すとまずい事になるんでしょうか?
低レベルの知識がないのでよく分からないんですが、スタックの巻き戻しとかでズレが生じるとかありそうな気がしています
int () { return 0; }という引数が一致しない空関数へのポインタを渡すとまずい事になるんでしょうか?
低レベルの知識がないのでよく分からないんですが、スタックの巻き戻しとかでズレが生じるとかありそうな気がしています
897はちみつ餃子 ◆8X2XSCHEME
2021/02/25(木) 14:45:58.57ID:ziL/azOs >>896
使われている ABI による。
x64 環境なら Unix (系の多くの OS) でも Windows でも引数は整数4個分までは
レジスタで渡されるんで、スタックの整合性は壊れないはず。
使われている ABI による。
x64 環境なら Unix (系の多くの OS) でも Windows でも引数は整数4個分までは
レジスタで渡されるんで、スタックの整合性は壊れないはず。
898デフォルトの名無しさん
2021/02/25(木) 15:12:23.79ID:bxBNuN1v899デフォルトの名無しさん
2021/02/25(木) 15:36:41.54ID:SLTnVXDN 静的解析ツールやコード分析で警告が出るだろうから直したほうがいいと思うけどね
900はちみつ餃子 ◆8X2XSCHEME
2021/02/25(木) 15:44:39.43ID:ziL/azOs x64 の一般的な ABI ではもう様々な呼出し規約を使い分けないようになってる。
(cdecl と stdcall が混在していた Windows が例外的で
他は 32bit 時代からかなり統一されていたみたいだけど。)
まあそれはともかくとして、
実際には不要でも適当な値が渡るようにして型を併せるほうが良いとは思う。
不整合を残しておくと強い最適化をかけたときにわけのわからないことになりがち。
(cdecl と stdcall が混在していた Windows が例外的で
他は 32bit 時代からかなり統一されていたみたいだけど。)
まあそれはともかくとして、
実際には不要でも適当な値が渡るようにして型を併せるほうが良いとは思う。
不整合を残しておくと強い最適化をかけたときにわけのわからないことになりがち。
901デフォルトの名無しさん
2021/02/25(木) 16:08:57.78ID:0Aa2beUH はちみつは見所がある弟子にしてやっても良いと、あわしろ氏が褒めてた。
902デフォルトの名無しさん
2021/02/25(木) 16:57:46.00ID:2x/2jVQO >>896
古いCから新しいC++まで含め、素朴な観点では原則的には大丈夫では有るが、
あなたが言っているように例外処理が入ってくるとどうなるかは不明。
C/C++では型を厳しくしているのは、そういうことを避けるため。
あなたのやろうとしていることは、関数アドレスをキャストしなくては
関数ポインタへの代入できない。
このようにキャストすることによって、アーキテクチャ依存となり、不具合が起きる
確率が0でなくなる。
古いCから新しいC++まで含め、素朴な観点では原則的には大丈夫では有るが、
あなたが言っているように例外処理が入ってくるとどうなるかは不明。
C/C++では型を厳しくしているのは、そういうことを避けるため。
あなたのやろうとしていることは、関数アドレスをキャストしなくては
関数ポインタへの代入できない。
このようにキャストすることによって、アーキテクチャ依存となり、不具合が起きる
確率が0でなくなる。
903デフォルトの名無しさん
2021/02/25(木) 17:00:32.01ID:2x/2jVQO >>902
[補足]
例外処理はとても複雑なことが行なわれることがある。
関数ポインタに代入する際に関数シグネチャが異なるものをキャストして入れると
どうなるかは処理系依存となる。
関数アドレスを同じビット数の整数型の変数との間で相互にキャストするのは構わない。
関数なのに、異なるシグネチャのものを代入しあうのは問題。
[補足]
例外処理はとても複雑なことが行なわれることがある。
関数ポインタに代入する際に関数シグネチャが異なるものをキャストして入れると
どうなるかは処理系依存となる。
関数アドレスを同じビット数の整数型の変数との間で相互にキャストするのは構わない。
関数なのに、異なるシグネチャのものを代入しあうのは問題。
>>891
そうですか‥‥
いまどき MFC の教科書が存在するかどうかは疑問ですが、やっぱり MFC に戻るしかないのですか!
でも、あのドキュメント=ビュー構造はいまだによく理解できないですね‥‥
そうですか‥‥
いまどき MFC の教科書が存在するかどうかは疑問ですが、やっぱり MFC に戻るしかないのですか!
でも、あのドキュメント=ビュー構造はいまだによく理解できないですね‥‥
905デフォルトの名無しさん
2021/02/25(木) 19:52:59.02ID:0YuzuhSG c/c++で型が厳しい?何言ってんだろ
906デフォルトの名無しさん
2021/02/25(木) 22:34:17.62ID:GHceiqHX C++は一応明示的に破ろうとしなければ結構ちゃんとチェックしてくれる
C? 知らんな
C? 知らんな
907デフォルトの名無しさん
2021/02/25(木) 23:10:04.64ID:NZmV0r2o >>902-903
「引数が一致しない」という素朴な観点でアウトだろうし例外処理関係ないだろ。
「引数が一致しない」という素朴な観点でアウトだろうし例外処理関係ないだろ。
908デフォルトの名無しさん
2021/02/26(金) 02:06:22.71ID:uELWbBar909デフォルトの名無しさん
2021/02/26(金) 07:24:52.91ID:gCkWSKrb int (int) { return 0; }で埋めて何が嫌なのかが分からないからな
特別な事情があるなら動かすハードとかの仕様調べろ
そんなのないなら素直に安全に書いとけ、でいいじゃん
特別な事情があるなら動かすハードとかの仕様調べろ
そんなのないなら素直に安全に書いとけ、でいいじゃん
910デフォルトの名無しさん
2021/02/26(金) 07:52:48.02ID:M2eccXrm911デフォルトの名無しさん
2021/02/26(金) 07:57:36.04ID:M2eccXrm912デフォルトの名無しさん
2021/02/26(金) 12:52:04.91ID:X0njcRoR cは互換型の概念がガバガバだからなあ…
typedefは当然互換だけど、structは中身のpodが同じでも(typedefしなければ!)タグ名で弾けるので、一々structに包めば論理ミスを防ぐこともできなくもない
typedefは当然互換だけど、structは中身のpodが同じでも(typedefしなければ!)タグ名で弾けるので、一々structに包めば論理ミスを防ぐこともできなくもない
913デフォルトの名無しさん
2021/03/01(月) 02:34:24.68ID:sakgt9rY 規格書を読んでみんなC++覚えてたの?
入門用のドキュメント読んだら規格書読むべきですか?
入門用のドキュメント読んだら規格書読むべきですか?
914デフォルトの名無しさん
2021/03/01(月) 06:09:14.80ID:N/bll+Sf 趣味のC++オタクでいいんならそれでいいと思うよ
C++を実用したいならそういうのはやめとけ、というかまず手を動かせ
その上で疑問が出てきたら調べるのはアリ
C++を実用したいならそういうのはやめとけ、というかまず手を動かせ
その上で疑問が出てきたら調べるのはアリ
915はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 09:15:36.61ID:770X86Bb 問題に遭遇したときに疑問として感じ取れる人ならいいんだが、
謎理論を自分の中に構築して邁進してしまうやつも
少なからずいるので安易に手を動かせとは言いにくい。
謎理論を自分の中に構築して邁進してしまうやつも
少なからずいるので安易に手を動かせとは言いにくい。
916デフォルトの名無しさん
2021/03/01(月) 09:31:54.75ID:Qi7MAN5S 各コンパイラに固有の実装依存があるから、結局は試すしかない。
PGが規格と違った動きをしているコンパイラをなじったところで、勝利するのはPGではなくコンパイラ。
PGが規格と違った動きをしているコンパイラをなじったところで、勝利するのはPGではなくコンパイラ。
917はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 09:41:00.95ID:770X86Bb 商用コンパイラがその商用コンパイラがサポートしているはずの規格と違う挙動だったらそれは文句言ってもいいだろ。
918デフォルトの名無しさん
2021/03/01(月) 09:44:14.28ID:kUoELfRz 文句を言うのはいいけど、規格書を盾に納期は延びないのよ。
919デフォルトの名無しさん
2021/03/01(月) 09:46:40.02ID:Qi7MAN5S >>918
それな
それな
920デフォルトの名無しさん
2021/03/01(月) 09:52:30.22ID:nOTghizW まあその通りなんだけど、誰かが言ってるからコンパイラ改良されるわけで
921デフォルトの名無しさん
2021/03/01(月) 09:52:48.41ID:Qi7MAN5S PGは、コンパイラが規格準拠してくれる日のために #if #endif で区切ってすぐに切り替えできるようにしておくことしかできない。
dirent周りのカオスを知っているなら、規格準拠をうるさく言う虚しさを理解しているはず。
dirent周りのカオスを知っているなら、規格準拠をうるさく言う虚しさを理解しているはず。
922はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 10:34:18.93ID:770X86Bb 商用コンパイラを商売で使うならサポート契約とセットじゃねーの?
使い倒さないと契約料丸損やないけ。
使い倒さないと契約料丸損やないけ。
923デフォルトの名無しさん
2021/03/01(月) 10:42:44.99ID:N/bll+Sf >>922
いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?
ちな俺はVCのバグ報告(テンプレート周りとか気付かれにくい部分)何度かしてるが、直るのは早くても半年後だよ
仕事でなくともとりあえず何とか回避するしか無いし、報告するにも再現性あるコード提供しないと迷惑かける
皆お前みたいに暇じゃねーんだよ
いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?
ちな俺はVCのバグ報告(テンプレート周りとか気付かれにくい部分)何度かしてるが、直るのは早くても半年後だよ
仕事でなくともとりあえず何とか回避するしか無いし、報告するにも再現性あるコード提供しないと迷惑かける
皆お前みたいに暇じゃねーんだよ
924デフォルトの名無しさん
2021/03/01(月) 10:52:02.51ID:f1Pg/hcl >>923
こういうのって結構な割合で最適化の不具合だったりするよね
特に組み込み系だとしょっちゅうそういうのあるから、該当箇所だけ最適化レベル下げて通したりしてるわ
もちろん不具合の報告もしてるけど修正まで時間かかるからね
こういうのって結構な割合で最適化の不具合だったりするよね
特に組み込み系だとしょっちゅうそういうのあるから、該当箇所だけ最適化レベル下げて通したりしてるわ
もちろん不具合の報告もしてるけど修正まで時間かかるからね
925はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 11:11:13.26ID:770X86Bb すぐにとはいかない現実があるのはわかるが、サポート契約の内容を本当に把握して言ってる?
商品の瑕疵に対応するのはあたりまえだからサポート契約ってのはそれ以上のものだよ。
契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
VC のバグ対応がよくないならそれは VC のサポートチームが良くないってだけだ。
商品の瑕疵に対応するのはあたりまえだからサポート契約ってのはそれ以上のものだよ。
契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
VC のバグ対応がよくないならそれは VC のサポートチームが良くないってだけだ。
926デフォルトの名無しさん
2021/03/01(月) 11:12:35.72ID:Qi7MAN5S #if #endif マクロがない言語は無駄にネストするのが欠点だと思う。
927はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 11:38:15.03ID:770X86Bb #if での切り分けだってネストはありうるけど、
それが見た目に分かりづらかったりするし、
いいことばかりじゃないよ。
それが見た目に分かりづらかったりするし、
いいことばかりじゃないよ。
928デフォルトの名無しさん
2021/03/01(月) 14:12:42.88ID:CPl5J/qU 一昔前なら effective c++ くらいは読もうってとこだったが、
今はどうだろうな。efective modern c++ でも足りない感じがする。
てかc++やるなら自分であれくらいのポイント抑えるくらいの準備が必要かもしれんという地獄。
今はどうだろうな。efective modern c++ でも足りない感じがする。
てかc++やるなら自分であれくらいのポイント抑えるくらいの準備が必要かもしれんという地獄。
929デフォルトの名無しさん
2021/03/01(月) 14:23:24.82ID:Qi7MAN5S スマートポインタが標準規格に採用されたC++11とそれ以前では、作法が随分違ってくる気がするよ。
930デフォルトの名無しさん
2021/03/01(月) 17:34:12.59ID:oQ7wqd0O931デフォルトの名無しさん
2021/03/01(月) 20:24:36.67ID:YhH9VVk1932デフォルトの名無しさん
2021/03/01(月) 21:14:48.91ID:Dkl+jirL >>925
> 契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
無いかも知れんが、「なんかおかしいんです~」でバグの特定がめっちゃ困難なことはプログラマーは身を持って知ってるから
そもそもバグの解決が遠のいたら苦しむのは自分だし
> 契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
無いかも知れんが、「なんかおかしいんです~」でバグの特定がめっちゃ困難なことはプログラマーは身を持って知ってるから
そもそもバグの解決が遠のいたら苦しむのは自分だし
933デフォルトの名無しさん
2021/03/01(月) 21:56:02.87ID:N/bll+Sf >>931
いや、純粋な言語仕様の話なら別に偉そうでもいいのよ正しい事書いてくれてるなら
いや、純粋な言語仕様の話なら別に偉そうでもいいのよ正しい事書いてくれてるなら
934はちみつ餃子 ◆8X2XSCHEME
2021/03/01(月) 23:56:40.27ID:770X86Bb >>932
雑な報告でいいというわけではないが、
サポート契約の利用率が非常に低い (値段は高いのに!) というのはよく聞く話なんで、
報告して対応待ちというだけじゃなくてもっとプロジェクトに巻き込んでいいはずなのになという感じ。
C++ の話じゃないけど、 LispWorks (Common Lisp の処理系) のバグ報告をしたら数日中に暫定パッチが
出てきたりとかワークアラウンドの提案とかもしてくれるという事例を利用者のブログで
見たことがあって商用処理系ってすげーなーと思ってたんだが、
そういう対応のほうが例外的に良すぎるだけなんかね?
雑な報告でいいというわけではないが、
サポート契約の利用率が非常に低い (値段は高いのに!) というのはよく聞く話なんで、
報告して対応待ちというだけじゃなくてもっとプロジェクトに巻き込んでいいはずなのになという感じ。
C++ の話じゃないけど、 LispWorks (Common Lisp の処理系) のバグ報告をしたら数日中に暫定パッチが
出てきたりとかワークアラウンドの提案とかもしてくれるという事例を利用者のブログで
見たことがあって商用処理系ってすげーなーと思ってたんだが、
そういう対応のほうが例外的に良すぎるだけなんかね?
935デフォルトの名無しさん
2021/03/02(火) 00:07:05.02ID:n7F7EI9c936デフォルトの名無しさん
2021/03/02(火) 00:37:21.45ID:wbC9damv スケジュールきついだけかもよ
バグがあるのわかってたけど数日かかりそうだから放置
バグ報告が出たから優先度上げて修正
バグがあるのわかってたけど数日かかりそうだから放置
バグ報告が出たから優先度上げて修正
937デフォルトの名無しさん
2021/03/02(火) 02:03:18.16ID:+qoPTldB そもそもユーザー数がアホみたいに多くてあらゆる層で利用されてるようなコンパイラだと
バグ報告あがってきてもまずそれほんとにバグなの??
ていうかまたコイツのリポートか!!!もしかしてただのいやがらせとかじゃないの??とか
色々まず疑ってかからないケースも半端なく多いだろうしな
バグ報告あがってきてもまずそれほんとにバグなの??
ていうかまたコイツのリポートか!!!もしかしてただのいやがらせとかじゃないの??とか
色々まず疑ってかからないケースも半端なく多いだろうしな
938デフォルトの名無しさん
2021/03/02(火) 05:18:47.46ID:+XzLrHKh939デフォルトの名無しさん
2021/03/02(火) 05:46:06.48ID:eqvY2Z+d940デフォルトの名無しさん
2021/03/02(火) 06:15:09.36ID:1/ifTUd4 >>934
VSのサブスク(旧MSDN)入ってる企業なら優先的に対応してくれるかもしれんけどね
ただVS2019の更新は数日とかのスパンでは来てないやろ(しかもベータを経てからじゃなかったか?
Xcodeのclangなんかはもっと遅い
そのLispWorksとかいうのは例外的だろうね
で、みんな回避方法くらいは自分で見つけるし直るまでの間何もしないわけにはいかんからな
VSのサブスク(旧MSDN)入ってる企業なら優先的に対応してくれるかもしれんけどね
ただVS2019の更新は数日とかのスパンでは来てないやろ(しかもベータを経てからじゃなかったか?
Xcodeのclangなんかはもっと遅い
そのLispWorksとかいうのは例外的だろうね
で、みんな回避方法くらいは自分で見つけるし直るまでの間何もしないわけにはいかんからな
941デフォルトの名無しさん
2021/03/02(火) 06:43:01.65ID:auUulvn4 コンパイラを作っている人は他の誰よりも標準規格に詳しい。
コンパイラが規格準拠できないのはなんらかの事情がある。釈迦に説法はカッコ悪い。
コンパイラが規格準拠できないのはなんらかの事情がある。釈迦に説法はカッコ悪い。
942デフォルトの名無しさん
2021/03/02(火) 11:52:24.56ID:K6P+Ktrz cl書くけどlispworksは資料もすごいのでお世話になる、中の人がlisp界隈で愛称で呼ばれるくらい精力的なんで、ただそうなだけだと思う
まあフリーな処理系使うけどな
しかしニッチ過ぎるlispのどこで儲けてるのやら全く謎
まあフリーな処理系使うけどな
しかしニッチ過ぎるlispのどこで儲けてるのやら全く謎
943デフォルトの名無しさん
2021/03/02(火) 22:42:51.15ID:NRNfCe84 言語としての機能はともかく、lispはマスコットがきもすぎ
944デフォルトの名無しさん
2021/03/02(火) 22:45:21.36ID:NT1aj9pH 言語を作った人の本を読むのが一番良い
945デフォルトの名無しさん
2021/03/02(火) 22:50:53.20ID:NT1aj9pH ていうか言語を作った人の本に載っているサンプルコードが
言語の思想を一番正確に表現しているはず……
言語の思想を一番正確に表現しているはず……
946デフォルトの名無しさん
2021/03/03(水) 04:56:27.42ID:W4jJ9FhP 禿の思想はC++03までだろ
頑なにラムダ式とrange-based-for-statementを拒み続けたところまで
4th editionでasyncを持ち上げてたけどその後の展開がアレだし
頑なにラムダ式とrange-based-for-statementを拒み続けたところまで
4th editionでasyncを持ち上げてたけどその後の展開がアレだし
947デフォルトの名無しさん
2021/03/03(水) 06:51:09.01ID:gVMBPcTA >>943
googleさんのImage for ...サジェストに
caution: made with alien technologyって標語の例の生物のロゴが出てきやがるのは風評被害
rplacd、dpb、fmakunboundとかほぼほぼ英語だし明らかにエイリアン語ではない
cも大概だしな
googleさんのImage for ...サジェストに
caution: made with alien technologyって標語の例の生物のロゴが出てきやがるのは風評被害
rplacd、dpb、fmakunboundとかほぼほぼ英語だし明らかにエイリアン語ではない
cも大概だしな
948はちみつ餃子 ◆8X2XSCHEME
2021/03/03(水) 14:59:21.41ID:ymUPAFSA949デフォルトの名無しさん
2021/03/03(水) 16:32:38.43ID:wyPUKIrf うわ下品な絵
950デフォルトの名無しさん
2021/03/03(水) 19:08:40.13ID:7D0nPsrG >>948
これは・・意外と嫌いではない・・w
これは・・意外と嫌いではない・・w
951デフォルトの名無しさん
2021/03/03(水) 19:15:48.54ID:zRjA/+hm オライリー表紙絵みたいな動物の絵じゃないと、しっくりこない。
952デフォルトの名無しさん
2021/03/03(水) 22:54:00.65ID:on2XNxxF オイリー禿山。
953デフォルトの名無しさん
2021/03/04(木) 11:11:37.69ID:J6mhpq5t 禿と禿(かむろ)の違いが判らない
954デフォルトの名無しさん
2021/03/04(木) 13:03:17.03ID:K63vSywh カムロは半グレ
955デフォルトの名無しさん
2021/03/04(木) 13:36:37.45ID:Ep7EXP13 c++は仕事で書いてない人ほど好きな言語
956デフォルトの名無しさん
2021/03/04(木) 14:22:00.04ID:qn7RQ+4J と、仕事で書いてないやつが言う
957デフォルトの名無しさん
2021/03/04(木) 15:32:17.13ID:9GqbczPP 二人以上でやるとOOPの思想的違いがぶつかって最悪破綻するんだよな
958デフォルトの名無しさん
2021/03/04(木) 15:33:34.57ID:9GqbczPP で、仕事でやるときは、最下層にレベル合わせないとモノが出来上がらないしね
959デフォルトの名無しさん
2021/03/04(木) 17:35:44.00ID:Ep7EXP13 自分一人ならさぞかしすごいソフトウェアが書けると思ってるんですね。すごいですね。
960デフォルトの名無しさん
2021/03/04(木) 19:51:50.17ID:cqTSJRKn961デフォルトの名無しさん
2021/03/04(木) 20:33:50.17ID:Xyn3qjeu constexpr制限きつすぎ
962デフォルトの名無しさん
2021/03/04(木) 20:47:45.23ID:FQXwH3J2 C++11の頃ならともかく今そんなにきついか?
963デフォルトの名無しさん
2021/03/05(金) 05:58:33.51ID:BcBZQBoi C++20、情報過多でしんどい
964デフォルトの名無しさん
2021/03/05(金) 06:14:45.51ID:ddot6YlQ std::variant を使い始めたのですが、例えば variant の中身が4種類あって、そのうちの
2種類とか3種類だけに対し共通なコードを実行したい、ときにはどんな書き方がありますかね?
全部に同じコードを適用するなら std::visit() でいいわけですが。
2種類とか3種類だけに対し共通なコードを実行したい、ときにはどんな書き方がありますかね?
全部に同じコードを適用するなら std::visit() でいいわけですが。
965デフォルトの名無しさん
2021/03/06(土) 13:33:27.36ID:bGzUu7RI apply
966デフォルトの名無しさん
2021/03/06(土) 20:35:43.51ID:aLQdimbx >>964
共通処理を別の関数にまとめたうえで、visitする時に各型のオーバーロードでそれを呼び出す
visit時にジェネリックラムダを使って内部でif constexprで分岐
visit時にオーバーロードされた関数オブジェクトを用いて、共通処理が必要な型について呼び出されるところをテンプレートにして、他は型を指定しておく
visit時にオーバーロードされた関数オブジェクトを用いて、コンセプトで分岐
.index()とif文で書き分ける
共通処理を別の関数にまとめたうえで、visitする時に各型のオーバーロードでそれを呼び出す
visit時にジェネリックラムダを使って内部でif constexprで分岐
visit時にオーバーロードされた関数オブジェクトを用いて、共通処理が必要な型について呼び出されるところをテンプレートにして、他は型を指定しておく
visit時にオーバーロードされた関数オブジェクトを用いて、コンセプトで分岐
.index()とif文で書き分ける
967デフォルトの名無しさん
2021/03/07(日) 23:48:37.36ID:B2szmBNH968デフォルトの名無しさん
2021/03/10(水) 13:31:16.40ID:b6BdhXEV int getX() const { return mX; }
みたいな関数があるクラスのメンバ関数内でmXを参照するときに
mX と getX() のどっち使うのが一般的な書き方?
みたいな関数があるクラスのメンバ関数内でmXを参照するときに
mX と getX() のどっち使うのが一般的な書き方?
969デフォルトの名無しさん
2021/03/10(水) 14:04:43.65ID:8PvVb8hX >>968
確かにこれはいつも悩むなー
きっとアクセサ使うべきなんだろうけどね
頻繁にアクセスするならローカル変数に代入した方が早くなったりするし、一般的にクラス宣言に書いてるのもはインライン展開されてコスト的には変わらないだろうしね
むしろ他の言語のときにインライン展開なんてされないからめちゃくちゃ悩む
確かにこれはいつも悩むなー
きっとアクセサ使うべきなんだろうけどね
頻繁にアクセスするならローカル変数に代入した方が早くなったりするし、一般的にクラス宣言に書いてるのもはインライン展開されてコスト的には変わらないだろうしね
むしろ他の言語のときにインライン展開なんてされないからめちゃくちゃ悩む
970デフォルトの名無しさん
2021/03/10(水) 14:10:23.61ID:mzPrKkeu プロパティがないからな
971デフォルトの名無しさん
2021/03/10(水) 15:16:37.41ID:ZK+TZHvn なんでもかんでもgetterとかはJAVAから来たのかとか思ってしまう
取得時に演算しないならそもそもgetterなんか作らない方が分かりやすいと思うのだが
取得時に演算しないならそもそもgetterなんか作らない方が分かりやすいと思うのだが
972デフォルトの名無しさん
2021/03/10(水) 15:36:26.11ID:pTnyTINd >>971
C#みたいなのはそれはそれでわかりにくいから、getterも関数がいい。
C#みたいなのはそれはそれでわかりにくいから、getterも関数がいい。
973デフォルトの名無しさん
2021/03/10(水) 15:47:37.68ID:qvIOwUBa 無理にgetter作れってのはアホだなと思うけど、まあgetterくらいならそこまで問題になることもないかなとは思う。
やたらめったらsetter作ってたら死ねとは思うが。
やたらめったらsetter作ってたら死ねとは思うが。
974デフォルトの名無しさん
2021/03/10(水) 15:50:25.97ID:pTnyTINd const 属性をうまく使えば、getterを減らしても安全にコーディングできる。
975デフォルトの名無しさん
2021/03/10(水) 15:55:29.61ID:SA6nop04 オブジェクト指向に侵されてるとプロパティが欲しくなるだろう。
しかし、本物のC++は知っている。
それは間違いだと。
しかし、本物のC++は知っている。
それは間違いだと。
976デフォルトの名無しさん
2021/03/10(水) 19:38:24.39ID:pTnyTINd クラス外からは以下のようにconst 属性をつけてアクセスさせれば心持ち安全になる。
const MyClass& getInstance() const { return *this; }
const MyClass& getInstance() const { return *this; }
977デフォルトの名無しさん
2021/03/10(水) 19:39:09.45ID:pDjVp4Qi978デフォルトの名無しさん
2021/03/10(水) 20:37:43.62ID:wDDQFNF0 JavaBeans方式のプロパティはリフレクションあってこそのものなのにC++で真似してもなー。
979デフォルトの名無しさん
2021/03/10(水) 21:11:42.58ID:98wPPrPT JavaFXのプロパティは観測可能になってたすごかった
データバインディングとかリアクティブとかプログラムの書き方もずいぶん変わったよね
データバインディングとかリアクティブとかプログラムの書き方もずいぶん変わったよね
980デフォルトの名無しさん
2021/03/11(木) 01:07:59.93ID:6JW0gImZ そうだね流石Oracleだね
981デフォルトの名無しさん
2021/03/12(金) 00:57:21.49ID:9IOLdfat https://ideone.com/0FptIo
だれか、剰余の符号関係を教えてくれ。
だれか、剰余の符号関係を教えてくれ。
982デフォルトの名無しさん
2021/03/12(金) 01:32:57.35ID:I1KnPozY たぶんCから変わってないよな?
(a/b) * b + a%b == a
以上に説明できることはないと思うけど
他になにかあるの?
(a/b) * b + a%b == a
以上に説明できることはないと思うけど
他になにかあるの?
983はちみつ餃子 ◆8X2XSCHEME
2021/03/12(金) 03:04:36.84ID:ByeOJ4Y7 符号の向きは C++11 から仕様に入った。
(それはでは処理系定義)
C では C99 から。
(それはでは処理系定義)
C では C99 から。
984デフォルトの名無しさん
2021/03/12(金) 08:30:25.58ID:GKbHXc3G プロパティーは継承できたりインターフェースとして定めたりできるのが強み
だがそれしか強みが無i
しいて言えばリフレクションが使える言語なら、getterとsetterを同一の識別子で紐付いた形で列挙できる
というのわある鴨、(関数型のシグネチャでgetterとsetterを与えたらそうはいかん
だがそれしか強みが無i
しいて言えばリフレクションが使える言語なら、getterとsetterを同一の識別子で紐付いた形で列挙できる
というのわある鴨、(関数型のシグネチャでgetterとsetterを与えたらそうはいかん
985デフォルトの名無しさん
2021/03/12(金) 08:36:14.31ID:GKbHXc3G P=Q・X+R (0≦R<Q)
ので除数が負の%とか定義不能
被除数が負の場合はしらそん
多分Rが非負でなければならないから多分XはPより負の側に振れねばならないのではないか
ので除数が負の%とか定義不能
被除数が負の場合はしらそん
多分Rが非負でなければならないから多分XはPより負の側に振れねばならないのではないか
986デフォルトの名無しさん
2021/03/12(金) 14:00:09.40ID:9IOLdfat 未定義っぽいですね。ありがとう。
987デフォルトの名無しさん
2021/03/12(金) 16:14:00.58ID:EbD8nxkK C/C++に限らず界隈では「負数の剰余をとるべからず」という伝承がある
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★3 [BFU★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 [蚤の市★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 中国「高市が謝罪しなければ、ハニトラに引っかかった日本の政治家を公表する」 [804169411]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- 【実況】博衣こよりのえちえちカービィのエアライダー🧪★3
- かっぱ寿司さん、たった180円で腹いっぱい食える神メニューを作ってしまうwwwこれもう福士だろ
- 【35🌸専】なんG さくらみこ桃鉄配信実況スレ🏡【ホロライブ▶】
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
