[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(2): 2021/01/08(金)17:54 ID:0DW9z0rL(1) AAS
※前スレ
C++相談室 part153
2chスレ:tech
テンプレここまで
876: 2021/02/23(火)14:10 ID:HLi0yp23(2/3) AAS
Smalltalkはほぼ知らんけど
メッセージ式ってのは
セレクタ+引数のことだったはず
いやこれどうでもいいか
877: 2021/02/23(火)14:18 ID:UMWafFvJ(4/4) AAS
ていうか今にして思えばstd::shared_ptr<IFoo>がIFooのインスタンスに対する所有権を適切に移譲したり管理するので
std::shared_ptr<T>に持たせることにした時点でIFoo自体がリソースに対する所有権を管理する必要はなさげorz
878(1): 2021/02/23(火)14:29 ID:+0nZ2NLW(2/3) AAS
smalltalkなんて誰も使わないのだから、アジソンウェスレイのオブジェクト指向プログラミング入門にそう書かれていたからという理解で良いのでは?
若者もいるので説明しておくと、書店で書籍を買う時代があって、書店に並ばなければ書籍の存在自体わからなかったのですよ。
この本は何処の書店にも並んでいたので、スレの高齢者全員が読んでいます。
この本しかなかったんですよ。
良い本だとは思いませんが、30年たった今でも古書に値が付くはずです。
全員が読んでるので、全員が知っているかのように錯覚する人もいるって事です。
879(1): 2021/02/23(火)16:09 ID:CS53pw6I(1) AAS
C++のオブジェクト指向でメッセージングのワード出してくるのは
継承を説明するサンプルコードで動物の階層もちだしてくるのと同じ功罪がある
理解のとっかかりにはいいが、リアルな実装の段階ではそういうポエムみたいな話は忘れたほうがいい
880: 2021/02/23(火)16:11 ID:feF5fzNV(1) AAS
メッセージ(笑)とか頭おかしい奴が言いそう
881: 2021/02/23(火)16:16 ID:+0nZ2NLW(3/3) AAS
>>879
功もあると御自分で書かれているのでは?
882: 2021/02/23(火)19:10 ID:48JMuLBY(2/2) AAS
>>873
これで本当にいいのか?
コピー代入演算子でムーブさせるのが本当にあなたのやりたかったこと?
std::auto_ptrはこの問題があったからdeprecatedになったんだけど
883: ◆QZaw55cn4c 2021/02/23(火)21:53 ID:tPF8d5Rx(1/2) AAS
>>878
>書店で書籍を買う時代があって、書店に並ばなければ書籍の存在自体わからなかったのですよ。
私の若い頃を思い出します。
当時、神戸の一番大きな本屋さんでは、どうしたわけだかコンピューター関連書籍の部分だけは黒山の人だかりで、いつも二十人くらいがみんな立ち読みしまくっていて、そういう人ごみを押しのけて本を探さなければならなかったくらいでした
最近右翼になった数学者・藤原正彦氏によれば、もっと古い時代には町の小さな本屋さんであっても普通にそんな状態だった、ときいています、とても信じられませんが‥‥
そういうわけで、アマゾン・ウェルカム!
884(1): ◆QZaw55cn4c 2021/02/23(火)21:57 ID:tPF8d5Rx(2/2) AAS
>>875
私は例のペゾルド教本を何とか C++ に適応させたくて、ペゾルド本の WM 処理・巨大 switch 文を C++ に適合させようと未だに四苦八苦していますが、やっぱり MFC に移っちゃったほうが楽チンなんでしょうか?
885(1): 2021/02/23(火)22:05 ID:u3MMsI1X(4/5) AAS
>>871
あまりに一面的な見方やろ
>>848はカプセル化も多態も、上で話してた関数オブジェクトさえ否定する暴論
よほど拒否反応があるんだろうなー、と
886(1): 2021/02/23(火)22:07 ID:HLi0yp23(3/3) AAS
否定したように見えちゃってるんだな
いろんな人がおるな
887(1): 2021/02/23(火)22:15 ID:iu17pC6m(3/4) AAS
>>885
まあ
> (非静的)メンバ関数というのはデータメンバーの一貫性を保つため「だけ」に使うもんだよ
の「だけ」に引っかかってると思うんだけどそっちの方がどちらかと言うと暴論に見えるよ
888(1): 2021/02/23(火)22:20 ID:u3MMsI1X(5/5) AAS
まぁ関数オブジェクトはある意味当てはまってるかもしれんと思うが
>>887
そっちも根拠書いてね
889: 2021/02/23(火)22:28 ID:iu17pC6m(4/4) AAS
>>888
>>886が言うように「否定」はしてないと思うよ
ってことね
890: 2021/02/23(火)22:44 ID:H7IAWcv9(1) AAS
[selector message]
Objective-Cが良かったな。
891(1): 2021/02/24(水)06:48 ID:Vo6CI9FQ(1) AAS
>>884
やってみるとわかるけど、MFCと同じものを自分で作ってる感じになるね
ARM C++時代に作るとああなるんだけど、
今どきのC++20で作るとどうなるのかは興味深い
892: はちみつ餃子 ◆8X2XSCHEME 2021/02/24(水)15:54 ID:EZ8EgbLC(1) AAS
現代的な Windows のフレームワークとしては C++/WinRT に力が入ってるみたいなんで、
今からはこれを使った方がよさげ
893: 2021/02/24(水)17:47 ID:T43vsud+(1/2) AAS
P/Invokeともこれでおさらば、
と言いたいところだがネイティブC++をwrapするC++/WinRT自体はCLR上の言語なんじゃなかったっけ…
違ったっけ…
894: 2021/02/24(水)20:59 ID:T43vsud+(2/2) AAS
C++/CXと混同すた、orz
895: 2021/02/25(木)00:40 ID:hxonNlh3(1) AAS
C++/CLIだよ(小声
896(3): 2021/02/25(木)12:27 ID:Kp+Bp4Dl(1) AAS
int (int)型のコールバック関数ポインタにて、一応呼ばれるのでnullはマズイけど不要なので空にしたいという場合に
int () { return 0; }という引数が一致しない空関数へのポインタを渡すとまずい事になるんでしょうか?
低レベルの知識がないのでよく分からないんですが、スタックの巻き戻しとかでズレが生じるとかありそうな気がしています
897(1): はちみつ餃子 ◆8X2XSCHEME 2021/02/25(木)14:45 ID:ziL/azOs(1/2) AAS
>>896
使われている ABI による。
x64 環境なら Unix (系の多くの OS) でも Windows でも引数は整数4個分までは
レジスタで渡されるんで、スタックの整合性は壊れないはず。
898: 2021/02/25(木)15:12 ID:bxBNuN1v(1) AAS
>>896
スタックは呼ぶ側で処理するからズレないよ
でないと可変長引数とか実現できないし
>>897
そんなもんは処理系やオプション次第
899: 2021/02/25(木)15:36 ID:SLTnVXDN(1) AAS
静的解析ツールやコード分析で警告が出るだろうから直したほうがいいと思うけどね
900: はちみつ餃子 ◆8X2XSCHEME 2021/02/25(木)15:44 ID:ziL/azOs(2/2) AAS
x64 の一般的な ABI ではもう様々な呼出し規約を使い分けないようになってる。
(cdecl と stdcall が混在していた Windows が例外的で
他は 32bit 時代からかなり統一されていたみたいだけど。)
まあそれはともかくとして、
実際には不要でも適当な値が渡るようにして型を併せるほうが良いとは思う。
不整合を残しておくと強い最適化をかけたときにわけのわからないことになりがち。
901: 2021/02/25(木)16:08 ID:0Aa2beUH(1) AAS
はちみつは見所がある弟子にしてやっても良いと、あわしろ氏が褒めてた。
902(2): 2021/02/25(木)16:57 ID:2x/2jVQO(1/2) AAS
>>896
古いCから新しいC++まで含め、素朴な観点では原則的には大丈夫では有るが、
あなたが言っているように例外処理が入ってくるとどうなるかは不明。
C/C++では型を厳しくしているのは、そういうことを避けるため。
あなたのやろうとしていることは、関数アドレスをキャストしなくては
関数ポインタへの代入できない。
このようにキャストすることによって、アーキテクチャ依存となり、不具合が起きる
確率が0でなくなる。
903(1): 2021/02/25(木)17:00 ID:2x/2jVQO(2/2) AAS
>>902
[補足]
例外処理はとても複雑なことが行なわれることがある。
関数ポインタに代入する際に関数シグネチャが異なるものをキャストして入れると
どうなるかは処理系依存となる。
関数アドレスを同じビット数の整数型の変数との間で相互にキャストするのは構わない。
関数なのに、異なるシグネチャのものを代入しあうのは問題。
904(1): ◆QZaw55cn4c 2021/02/25(木)19:04 ID:FipxGJhu(1) AAS
>>891
そうですか‥‥
いまどき MFC の教科書が存在するかどうかは疑問ですが、やっぱり MFC に戻るしかないのですか!
でも、あのドキュメント=ビュー構造はいまだによく理解できないですね‥‥
905: 2021/02/25(木)19:52 ID:0YuzuhSG(1) AAS
c/c++で型が厳しい?何言ってんだろ
906: 2021/02/25(木)22:34 ID:GHceiqHX(1) AAS
C++は一応明示的に破ろうとしなければ結構ちゃんとチェックしてくれる
C? 知らんな
907(1): 2021/02/25(木)23:10 ID:NZmV0r2o(1) AAS
>>902-903
「引数が一致しない」という素朴な観点でアウトだろうし例外処理関係ないだろ。
908: 2021/02/26(金)02:06 ID:uELWbBar(1) AAS
>>907
でも、引数を関数内で参照して無い場合、素朴な呼び出し規約的には問題ない。
例外処理の unwinding は仕様が難しいので良くわからないと言うこと。
実際は大丈夫かも知れない。
909(1): 2021/02/26(金)07:24 ID:gCkWSKrb(1) AAS
int (int) { return 0; }で埋めて何が嫌なのかが分からないからな
特別な事情があるなら動かすハードとかの仕様調べろ
そんなのないなら素直に安全に書いとけ、でいいじゃん
910: 2021/02/26(金)07:52 ID:M2eccXrm(1/2) AAS
>>904
一つのデータを複数のウインドウで見るって考え方だよ
テキストエディタでもスプリットバーやマルチビューは普通に使うだろ
911: 2021/02/26(金)07:57 ID:M2eccXrm(2/2) AAS
>>909と同意見だ
[](int){return 0;}では何がダメなのか
説明がないとこれ以上何とも言い様がない
912: 2021/02/26(金)12:52 ID:X0njcRoR(1) AAS
cは互換型の概念がガバガバだからなあ…
typedefは当然互換だけど、structは中身のpodが同じでも(typedefしなければ!)タグ名で弾けるので、一々structに包めば論理ミスを防ぐこともできなくもない
913: 2021/03/01(月)02:34 ID:sakgt9rY(1) AAS
規格書を読んでみんなC++覚えてたの?
入門用のドキュメント読んだら規格書読むべきですか?
914: 2021/03/01(月)06:09 ID:N/bll+Sf(1/3) AAS
趣味のC++オタクでいいんならそれでいいと思うよ
C++を実用したいならそういうのはやめとけ、というかまず手を動かせ
その上で疑問が出てきたら調べるのはアリ
915: はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)09:15 ID:770X86Bb(1/6) AAS
問題に遭遇したときに疑問として感じ取れる人ならいいんだが、
謎理論を自分の中に構築して邁進してしまうやつも
少なからずいるので安易に手を動かせとは言いにくい。
916: 2021/03/01(月)09:31 ID:Qi7MAN5S(1/5) AAS
各コンパイラに固有の実装依存があるから、結局は試すしかない。
PGが規格と違った動きをしているコンパイラをなじったところで、勝利するのはPGではなくコンパイラ。
917(1): はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)09:41 ID:770X86Bb(2/6) AAS
商用コンパイラがその商用コンパイラがサポートしているはずの規格と違う挙動だったらそれは文句言ってもいいだろ。
918(1): 2021/03/01(月)09:44 ID:kUoELfRz(1) AAS
文句を言うのはいいけど、規格書を盾に納期は延びないのよ。
919: 2021/03/01(月)09:46 ID:Qi7MAN5S(2/5) AAS
>>918
それな
920: 2021/03/01(月)09:52 ID:nOTghizW(1) AAS
まあその通りなんだけど、誰かが言ってるからコンパイラ改良されるわけで
921: 2021/03/01(月)09:52 ID:Qi7MAN5S(3/5) AAS
PGは、コンパイラが規格準拠してくれる日のために #if #endif で区切ってすぐに切り替えできるようにしておくことしかできない。
dirent周りのカオスを知っているなら、規格準拠をうるさく言う虚しさを理解しているはず。
922(1): はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)10:34 ID:770X86Bb(3/6) AAS
商用コンパイラを商売で使うならサポート契約とセットじゃねーの?
使い倒さないと契約料丸損やないけ。
923(3): 2021/03/01(月)10:42 ID:N/bll+Sf(2/3) AAS
>>922
いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?
ちな俺はVCのバグ報告(テンプレート周りとか気付かれにくい部分)何度かしてるが、直るのは早くても半年後だよ
仕事でなくともとりあえず何とか回避するしか無いし、報告するにも再現性あるコード提供しないと迷惑かける
皆お前みたいに暇じゃねーんだよ
924: 2021/03/01(月)10:52 ID:f1Pg/hcl(1) AAS
>>923
こういうのって結構な割合で最適化の不具合だったりするよね
特に組み込み系だとしょっちゅうそういうのあるから、該当箇所だけ最適化レベル下げて通したりしてるわ
もちろん不具合の報告もしてるけど修正まで時間かかるからね
925(1): はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)11:11 ID:770X86Bb(4/6) AAS
すぐにとはいかない現実があるのはわかるが、サポート契約の内容を本当に把握して言ってる?
商品の瑕疵に対応するのはあたりまえだからサポート契約ってのはそれ以上のものだよ。
契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
VC のバグ対応がよくないならそれは VC のサポートチームが良くないってだけだ。
926: 2021/03/01(月)11:12 ID:Qi7MAN5S(4/5) AAS
#if #endif マクロがない言語は無駄にネストするのが欠点だと思う。
927: はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)11:38 ID:770X86Bb(5/6) AAS
#if での切り分けだってネストはありうるけど、
それが見た目に分かりづらかったりするし、
いいことばかりじゃないよ。
928: 2021/03/01(月)14:12 ID:CPl5J/qU(1) AAS
一昔前なら effective c++ くらいは読もうってとこだったが、
今はどうだろうな。efective modern c++ でも足りない感じがする。
てかc++やるなら自分であれくらいのポイント抑えるくらいの準備が必要かもしれんという地獄。
929: 2021/03/01(月)14:23 ID:Qi7MAN5S(5/5) AAS
スマートポインタが標準規格に採用されたC++11とそれ以前では、作法が随分違ってくる気がするよ。
930: 2021/03/01(月)17:34 ID:oQ7wqd0O(1) AAS
>>917
「文句」みたいな感情的なものじゃなく
ドライにバグレポだ
再現コードだけじゃなく回避方法もつけて
931(1): 2021/03/01(月)20:24 ID:YhH9VVk1(1) AAS
>>923
> いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?
やめたれw
932(1): 2021/03/01(月)21:14 ID:Dkl+jirL(1) AAS
>>925
> 契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
無いかも知れんが、「なんかおかしいんです~」でバグの特定がめっちゃ困難なことはプログラマーは身を持って知ってるから
そもそもバグの解決が遠のいたら苦しむのは自分だし
933: 2021/03/01(月)21:56 ID:N/bll+Sf(3/3) AAS
>>931
いや、純粋な言語仕様の話なら別に偉そうでもいいのよ正しい事書いてくれてるなら
934(3): はちみつ餃子 ◆8X2XSCHEME 2021/03/01(月)23:56 ID:770X86Bb(6/6) AAS
>>932
雑な報告でいいというわけではないが、
サポート契約の利用率が非常に低い (値段は高いのに!) というのはよく聞く話なんで、
報告して対応待ちというだけじゃなくてもっとプロジェクトに巻き込んでいいはずなのになという感じ。
C++ の話じゃないけど、 LispWorks (Common Lisp の処理系) のバグ報告をしたら数日中に暫定パッチが
出てきたりとかワークアラウンドの提案とかもしてくれるという事例を利用者のブログで
見たことがあって商用処理系ってすげーなーと思ってたんだが、
そういう対応のほうが例外的に良すぎるだけなんかね?
935: 2021/03/02(火)00:07 ID:n7F7EI9c(1) AAS
>>934
そういう対応はマイナーメーカーの方がいいことが多いよ
MSの対応が悪いとは言わないけどユーザーがアホほど多いから処理系のバグにぶち当たる可能性も低いし
936: 2021/03/02(火)00:37 ID:wbC9damv(1) AAS
スケジュールきついだけかもよ
バグがあるのわかってたけど数日かかりそうだから放置
バグ報告が出たから優先度上げて修正
937: 2021/03/02(火)02:03 ID:+qoPTldB(1) AAS
そもそもユーザー数がアホみたいに多くてあらゆる層で利用されてるようなコンパイラだと
バグ報告あがってきてもまずそれほんとにバグなの??
ていうかまたコイツのリポートか!!!もしかしてただのいやがらせとかじゃないの??とか
色々まず疑ってかからないケースも半端なく多いだろうしな
938: 2021/03/02(火)05:18 ID:+XzLrHKh(1) AAS
>>923
あわしろ氏は、はちみつのことを褒めてたけどな。
見どころがあるから弟子にしてやっても良いと。
月一万で弟子にしてやるぞ。
939: 2021/03/02(火)05:46 ID:eqvY2Z+d(1) AAS
>>934
サポート契約はどんなに使い倒しても契約料が戻ってくるわけじゃない
自分が頑張ってインカムを増やすのが「元を取る」ということだ
940: 2021/03/02(火)06:15 ID:1/ifTUd4(1) AAS
>>934
VSのサブスク(旧MSDN)入ってる企業なら優先的に対応してくれるかもしれんけどね
ただVS2019の更新は数日とかのスパンでは来てないやろ(しかもベータを経てからじゃなかったか?
Xcodeのclangなんかはもっと遅い
そのLispWorksとかいうのは例外的だろうね
で、みんな回避方法くらいは自分で見つけるし直るまでの間何もしないわけにはいかんからな
941: 2021/03/02(火)06:43 ID:auUulvn4(1) AAS
コンパイラを作っている人は他の誰よりも標準規格に詳しい。
コンパイラが規格準拠できないのはなんらかの事情がある。釈迦に説法はカッコ悪い。
942: 2021/03/02(火)11:52 ID:K6P+Ktrz(1) AAS
cl書くけどlispworksは資料もすごいのでお世話になる、中の人がlisp界隈で愛称で呼ばれるくらい精力的なんで、ただそうなだけだと思う
まあフリーな処理系使うけどな
しかしニッチ過ぎるlispのどこで儲けてるのやら全く謎
943(2): 2021/03/02(火)22:42 ID:NRNfCe84(1) AAS
言語としての機能はともかく、lispはマスコットがきもすぎ
944: 2021/03/02(火)22:45 ID:NT1aj9pH(1/2) AAS
言語を作った人の本を読むのが一番良い
945: 2021/03/02(火)22:50 ID:NT1aj9pH(2/2) AAS
ていうか言語を作った人の本に載っているサンプルコードが
言語の思想を一番正確に表現しているはず……
946: 2021/03/03(水)04:56 ID:W4jJ9FhP(1) AAS
禿の思想はC++03までだろ
頑なにラムダ式とrange-based-for-statementを拒み続けたところまで
4th editionでasyncを持ち上げてたけどその後の展開がアレだし
947: 2021/03/03(水)06:51 ID:gVMBPcTA(1) AAS
>>943
googleさんのImage for ...サジェストに
caution: made with alien technologyって標語の例の生物のロゴが出てきやがるのは風評被害
rplacd、dpb、fmakunboundとかほぼほぼ英語だし明らかにエイリアン語ではない
cも大概だしな
948(1): はちみつ餃子 ◆8X2XSCHEME 2021/03/03(水)14:59 ID:ymUPAFSA(1) AAS
>>943
C++ も似たようなもんだろ
外部リンク:www.pixiv.net
949: 2021/03/03(水)16:32 ID:wyPUKIrf(1) AAS
うわ下品な絵
950: 2021/03/03(水)19:08 ID:7D0nPsrG(1) AAS
>>948
これは・・意外と嫌いではない・・w
951: 2021/03/03(水)19:15 ID:zRjA/+hm(1) AAS
オライリー表紙絵みたいな動物の絵じゃないと、しっくりこない。
952: 2021/03/03(水)22:54 ID:on2XNxxF(1) AAS
オイリー禿山。
953: 2021/03/04(木)11:11 ID:J6mhpq5t(1) AAS
禿と禿(かむろ)の違いが判らない
954: 2021/03/04(木)13:03 ID:K63vSywh(1) AAS
カムロは半グレ
955(1): 2021/03/04(木)13:36 ID:Ep7EXP13(1/2) AAS
c++は仕事で書いてない人ほど好きな言語
956: 2021/03/04(木)14:22 ID:qn7RQ+4J(1) AAS
と、仕事で書いてないやつが言う
957: 2021/03/04(木)15:32 ID:9GqbczPP(1/2) AAS
二人以上でやるとOOPの思想的違いがぶつかって最悪破綻するんだよな
958: 2021/03/04(木)15:33 ID:9GqbczPP(2/2) AAS
で、仕事でやるときは、最下層にレベル合わせないとモノが出来上がらないしね
959: 2021/03/04(木)17:35 ID:Ep7EXP13(2/2) AAS
自分一人ならさぞかしすごいソフトウェアが書けると思ってるんですね。すごいですね。
960: 2021/03/04(木)19:51 ID:cqTSJRKn(1) AAS
>>955
それあると思う
アマチュアにこそ好かれる言語だと思う(;^ω^)
961: 2021/03/04(木)20:33 ID:Xyn3qjeu(1) AAS
constexpr制限きつすぎ
962(1): 2021/03/04(木)20:47 ID:FQXwH3J2(1) AAS
C++11の頃ならともかく今そんなにきついか?
963: 2021/03/05(金)05:58 ID:BcBZQBoi(1) AAS
C++20、情報過多でしんどい
964(1): 2021/03/05(金)06:14 ID:ddot6YlQ(1) AAS
std::variant を使い始めたのですが、例えば variant の中身が4種類あって、そのうちの
2種類とか3種類だけに対し共通なコードを実行したい、ときにはどんな書き方がありますかね?
全部に同じコードを適用するなら std::visit() でいいわけですが。
965: 2021/03/06(土)13:33 ID:bGzUu7RI(1) AAS
apply
966: 2021/03/06(土)20:35 ID:aLQdimbx(1) AAS
>>964
共通処理を別の関数にまとめたうえで、visitする時に各型のオーバーロードでそれを呼び出す
visit時にジェネリックラムダを使って内部でif constexprで分岐
visit時にオーバーロードされた関数オブジェクトを用いて、共通処理が必要な型について呼び出されるところをテンプレートにして、他は型を指定しておく
visit時にオーバーロードされた関数オブジェクトを用いて、コンセプトで分岐
.index()とif文で書き分ける
967: 2021/03/07(日)23:48 ID:B2szmBNH(1) AAS
>>962
msvcのバージョン古くて。
c++14に対応してない。c++11でやってるイメージ。再帰でどんどんソースが汚れる。
968(2): 2021/03/10(水)13:31 ID:b6BdhXEV(1) AAS
int getX() const { return mX; }
みたいな関数があるクラスのメンバ関数内でmXを参照するときに
mX と getX() のどっち使うのが一般的な書き方?
969: 2021/03/10(水)14:04 ID:8PvVb8hX(1) AAS
>>968
確かにこれはいつも悩むなー
きっとアクセサ使うべきなんだろうけどね
頻繁にアクセスするならローカル変数に代入した方が早くなったりするし、一般的にクラス宣言に書いてるのもはインライン展開されてコスト的には変わらないだろうしね
むしろ他の言語のときにインライン展開なんてされないからめちゃくちゃ悩む
970: 2021/03/10(水)14:10 ID:mzPrKkeu(1) AAS
プロパティがないからな
971(1): 2021/03/10(水)15:16 ID:ZK+TZHvn(1) AAS
なんでもかんでもgetterとかはJAVAから来たのかとか思ってしまう
取得時に演算しないならそもそもgetterなんか作らない方が分かりやすいと思うのだが
972: 2021/03/10(水)15:36 ID:pTnyTINd(1/3) AAS
>>971
C#みたいなのはそれはそれでわかりにくいから、getterも関数がいい。
973: 2021/03/10(水)15:47 ID:qvIOwUBa(1) AAS
無理にgetter作れってのはアホだなと思うけど、まあgetterくらいならそこまで問題になることもないかなとは思う。
やたらめったらsetter作ってたら死ねとは思うが。
974: 2021/03/10(水)15:50 ID:pTnyTINd(2/3) AAS
const 属性をうまく使えば、getterを減らしても安全にコーディングできる。
975: 2021/03/10(水)15:55 ID:SA6nop04(1) AAS
オブジェクト指向に侵されてるとプロパティが欲しくなるだろう。
しかし、本物のC++は知っている。
それは間違いだと。
976: 2021/03/10(水)19:38 ID:pTnyTINd(3/3) AAS
クラス外からは以下のようにconst 属性をつけてアクセスさせれば心持ち安全になる。
const MyClass& getInstance() const { return *this; }
977: 2021/03/10(水)19:39 ID:pDjVp4Qi(1) AAS
>>968
フックを残すかどうかだな
abortとterminateみたいに
978: 2021/03/10(水)20:37 ID:wDDQFNF0(1) AAS
JavaBeans方式のプロパティはリフレクションあってこそのものなのにC++で真似してもなー。
979: 2021/03/10(水)21:11 ID:98wPPrPT(1) AAS
JavaFXのプロパティは観測可能になってたすごかった
データバインディングとかリアクティブとかプログラムの書き方もずいぶん変わったよね
980: 2021/03/11(木)01:07 ID:6JW0gImZ(1) AAS
そうだね流石Oracleだね
981: 2021/03/12(金)00:57 ID:9IOLdfat(1/2) AAS
外部リンク:ideone.com
だれか、剰余の符号関係を教えてくれ。
982: 2021/03/12(金)01:32 ID:I1KnPozY(1) AAS
たぶんCから変わってないよな?
(a/b) * b + a%b == a
以上に説明できることはないと思うけど
他になにかあるの?
983: はちみつ餃子 ◆8X2XSCHEME 2021/03/12(金)03:04 ID:ByeOJ4Y7(1) AAS
符号の向きは C++11 から仕様に入った。
(それはでは処理系定義)
C では C99 から。
984: 2021/03/12(金)08:30 ID:GKbHXc3G(1/2) AAS
プロパティーは継承できたりインターフェースとして定めたりできるのが強み
だがそれしか強みが無i
しいて言えばリフレクションが使える言語なら、getterとsetterを同一の識別子で紐付いた形で列挙できる
というのわある鴨、(関数型のシグネチャでgetterとsetterを与えたらそうはいかん
985(1): 2021/03/12(金)08:36 ID:GKbHXc3G(2/2) AAS
P=Q・X+R (0≦R<Q)
ので除数が負の%とか定義不能
被除数が負の場合はしらそん
多分Rが非負でなければならないから多分XはPより負の側に振れねばならないのではないか
986: 2021/03/12(金)14:00 ID:9IOLdfat(2/2) AAS
未定義っぽいですね。ありがとう。
987: 2021/03/12(金)16:14 ID:EbD8nxkK(1) AAS
C/C++に限らず界隈では「負数の剰余をとるべからず」という伝承がある
988: ◆QZaw55cn4c 2021/03/12(金)20:35 ID:IXuMqCK3(1) AAS
>>985
剰余の定義は、その定義だけではないですね
「最小正剰余」のほかには「絶対的最小剰余」もあります
外部リンク:ja.wikisource.org
自分で適当な剰余を定義したっていいのですよ
989: 2021/03/13(土)14:10 ID:9o031KiD(1) AAS
0へ丸めるtruncate算だったかと
mod算するときに結構困るのでユークリッド算関数は常にヘッダに入れてる
a % 2 == 1 // -1かもしれない
まあ偶奇判定くらいなら!=0で取り繕えるけど
ネットで見かける拡張ユークリッドのトイプログラムは大体間違ってるね
負の除数を想定してないgcdならそれでいいけど、ベズー係数求める時に負の被除数を扱えないと一般解の公式で他の解出してお茶は濁せるけど
有限体やら他の体とテンプレート共有できない
990: 2021/03/17(水)23:25 ID:H7rJK4fS(1) AAS
外部リンク[pdf]:open-std.org
991: 2021/03/22(月)08:32 ID:j6rur0Vp(1) AAS
静的ライブラリを作るときに-fPICを指定する必要はないよね?
992: 2021/03/22(月)09:41 ID:mzxuOn07(1) AAS
OSによるのでは
993: 2021/03/22(月)23:28 ID:iFQHROzx(1) AAS
PICマイコン用のバイナリが吐かれる
994(1): 2021/03/24(水)07:52 ID:PNXF+EC1(1/3) AAS
struct a{};
struct b:private a{};
b c;
(a*)&c; //ok
この下痢糞仕様は何?
こう決まった理由が知りたい
995: 2021/03/24(水)08:46 ID:QJMmjFss(1) AAS
>>994
C形式のキャストを使ってるからではなくて?
どんなポインタにもキャストできると思うけど
996: 2021/03/24(水)09:11 ID:PNXF+EC1(2/3) AAS
reinterpret_castとちゃうで
997: 2021/03/24(水)09:17 ID:R+oM8cup(1) AAS
たとえ(int*)&c;でも通るでしょ
998: 2021/03/24(水)09:40 ID:PNXF+EC1(3/3) AAS
仮想継承にするとダウンキャストはできなくなるんで
型を無視しているのでもなさそう
999: 2021/03/24(水)10:03 ID:FhOgWspo(1) AAS
ポインタは任意のポインタに変換出来る
未定義動作になる可能性があるのはデリファレンスするコードを書いた場合
1000: 2021/03/24(水)10:41 ID:uPqg/PBu(1) AAS
64bitアプリで32bit整数値をvoid*にキャストしようとするとエラーになる場合があるね。
それを親切と感じることが出来れば玄人。
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 74日 16時間 47分 20秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
外部リンク:premium.5ch.net
▼ 浪人ログインはこちら ▼
外部リンク[php]:login.5ch.net
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.204s*