[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/27 11:38 / Filesize : 256 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part154



1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net]
※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/

テンプレここまで

902 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:07:42.70 ID:HLi0yp23.net]
否定したように見えちゃってるんだな
いろんな人がおるな

903 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:15:00.14 ID:iu17pC6m.net]
>>885
まあ
> (非静的)メンバ関数というのはデータメンバーの一貫性を保つため「だけ」に使うもんだよ
の「だけ」に引っかかってると思うんだけどそっちの方がどちらかと言うと暴論に見えるよ

904 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:20:52.65 ID:u3MMsI1X.net]
まぁ関数オブジェクトはある意味当てはまってるかもしれんと思うが
>>887
そっちも根拠書いてね

905 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:28:42.45 ID:iu17pC6m.net]
>>888
>>886が言うように「否定」はしてないと思うよ
ってことね

906 名前:デフォルトの名無しさん [2021/02/23(火) 22:44:54.86 ID:H7IAWcv9.net]
[selector message]

Objective-Cが良かったな。

907 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 06:48:21.60 ID:Vo6CI9FQ.net]
>>884
やってみるとわかるけど、MFCと同じものを自分で作ってる感じになるね
ARM C++時代に作るとああなるんだけど、
今どきのC++20で作るとどうなるのかは興味深い

908 名前:はちみつ餃子 mailto:sage [2021/02/24(水) 15:54:28.46 ID:EZ8EgbLC.net]
現代的な Windows のフレームワークとしては C++/WinRT に力が入ってるみたいなんで、
今からはこれを使った方がよさげ

909 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 17:47:00.67 ID:T43vsud+.net]
P/Invokeともこれでおさらば、
と言いたいところだがネイティブC++をwrapするC++/WinRT自体はCLR上の言語なんじゃなかったっけ…
違ったっけ…

910 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 20:59:30.49 ID:T43vsud+.net]
C++/CXと混同すた、orz



911 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 00:40:25.02 ID:hxonNlh3.net]
C++/CLIだよ(小声

912 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 12:27:48.18 ID:Kp+Bp4Dl.net]
int (int)型のコールバック関数ポインタにて、一応呼ばれるのでnullはマズイけど不要なので空にしたいという場合に
int () { return 0; }という引数が一致しない空関数へのポインタを渡すとまずい事になるんでしょうか?
低レベルの知識がないのでよく分からないんですが、スタックの巻き戻しとかでズレが生じるとかありそうな気がしています

913 名前:はちみつ餃子 mailto:sage [2021/02/25(木) 14:45:58.57 ID:ziL/azOs.net]
>>896
使われている ABI による。
x64 環境なら Unix (系の多くの OS) でも Windows でも引数は整数4個分までは
レジスタで渡されるんで、スタックの整合性は壊れないはず。

914 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 15:12:23.79 ID:bxBNuN1v.net]
>>896
スタックは呼ぶ側で処理するからズレないよ
でないと可変長引数とか実現できないし

>>897
そんなもんは処理系やオプション次第

915 名前:デフォルトの名無しさん [2021/02/25(木) 15:36:41.54 ID:SLTnVXDN.net]
静的解析ツールやコード分析で警告が出るだろうから直したほうがいいと思うけどね

916 名前:はちみつ餃子 mailto:sage [2021/02/25(木) 15:44:39.43 ID:ziL/azOs.net]
x64 の一般的な ABI ではもう様々な呼出し規約を使い分けないようになってる。
(cdecl と stdcall が混在していた Windows が例外的で
他は 32bit 時代からかなり統一されていたみたいだけど。)

まあそれはともかくとして、
実際には不要でも適当な値が渡るようにして型を併せるほうが良いとは思う。
不整合を残しておくと強い最適化をかけたときにわけのわからないことになりがち。

917 名前:デフォルトの名無しさん [2021/02/25(木) 16:08:57.78 ID:0Aa2beUH.net]
はちみつは見所がある弟子にしてやっても良いと、あわしろ氏が褒めてた。

918 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 16:57:46.00 ID:2x/2jVQO.net]
>>896
古いCから新しいC++まで含め、素朴な観点では原則的には大丈夫では有るが、
あなたが言っているように例外処理が入ってくるとどうなるかは不明。
C/C++では型を厳しくしているのは、そういうことを避けるため。
あなたのやろうとしていることは、関数アドレスをキャストしなくては
関数ポインタへの代入できない。
このようにキャストすることによって、アーキテクチャ依存となり、不具合が起きる
確率が0でなくなる。

919 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 17:00:32.01 ID:2x/2jVQO.net]
>>902
[補足]
例外処理はとても複雑なことが行なわれることがある。
関数ポインタに代入する際に関数シグネチャが異なるものをキャストして入れると
どうなるかは処理系依存となる。
関数アドレスを同じビット数の整数型の変数との間で相互にキャストするのは構わない。
関数なのに、異なるシグネチャのものを代入しあうのは問題。

920 名前: mailto:sage [2021/02/25(木) 19:04:36.48 ID:FipxGJhu.net]
>>891
そうですか‥‥
いまどき MFC の教科書が存在するかどうかは疑問ですが、やっぱり MFC に戻るしかないのですか!
でも、あのドキュメント=ビュー構造はいまだによく理解できないですね‥‥



921 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 19:52:59.02 ID:0YuzuhSG.net]
c/c++で型が厳しい?何言ってんだろ

922 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 22:34:17.62 ID:GHceiqHX.net]
C++は一応明示的に破ろうとしなければ結構ちゃんとチェックしてくれる
C? 知らんな

923 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 23:10:04.64 ID:NZmV0r2o.net]
>>902-903
「引数が一致しない」という素朴な観点でアウトだろうし例外処理関係ないだろ。

924 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 02:06:22.71 ID:uELWbBar.net]
>>907
でも、引数を関数内で参照して無い場合、素朴な呼び出し規約的には問題ない。
例外処理の unwinding は仕様が難しいので良くわからないと言うこと。
実際は大丈夫かも知れない。

925 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 07:24:52.91 ID:gCkWSKrb.net]
int (int) { return 0; }で埋めて何が嫌なのかが分からないからな
特別な事情があるなら動かすハードとかの仕様調べろ
そんなのないなら素直に安全に書いとけ、でいいじゃん

926 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 07:52:48.02 ID:M2eccXrm.net]
>>904
一つのデータを複数のウインドウで見るって考え方だよ
テキストエディタでもスプリットバーやマルチビューは普通に使うだろ

927 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 07:57:36.04 ID:M2eccXrm.net]
>>909と同意見だ
[](int){return 0;}では何がダメなのか
説明がないとこれ以上何とも言い様がない

928 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 12:52:04.91 ID:X0njcRoR.net]
cは互換型の概念がガバガバだからなあ…
typedefは当然互換だけど、structは中身のpodが同じでも(typedefしなければ!)タグ名で弾けるので、一々structに包めば論理ミスを防ぐこともできなくもない

929 名前:デフォルトの名無しさん [2021/03/01(月) 02:34:24.68 ID:sakgt9rY.net]
規格書を読んでみんなC++覚えてたの?
入門用のドキュメント読んだら規格書読むべきですか?

930 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 06:09:14.80 ID:N/bll+Sf.net]
趣味のC++オタクでいいんならそれでいいと思うよ
C++を実用したいならそういうのはやめとけ、というかまず手を動かせ
その上で疑問が出てきたら調べるのはアリ



931 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 09:15:36.61 ID:770X86Bb.net]
問題に遭遇したときに疑問として感じ取れる人ならいいんだが、
謎理論を自分の中に構築して邁進してしまうやつも
少なからずいるので安易に手を動かせとは言いにくい。

932 名前:デフォルトの名無しさん [2021/03/01(月) 09:31:54.75 ID:Qi7MAN5S.net]
各コンパイラに固有の実装依存があるから、結局は試すしかない。
PGが規格と違った動きをしているコンパイラをなじったところで、勝利するのはPGではなくコンパイラ。

933 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 09:41:00.95 ID:770X86Bb.net]
商用コンパイラがその商用コンパイラがサポートしているはずの規格と違う挙動だったらそれは文句言ってもいいだろ。

934 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 09:44:14.28 ID:kUoELfRz.net]
文句を言うのはいいけど、規格書を盾に納期は延びないのよ。

935 名前:デフォルトの名無しさん [2021/03/01(月) 09:46:40.02 ID:Qi7MAN5S.net]
>>918
それな

936 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 09:52:30.22 ID:nOTghizW.net]
まあその通りなんだけど、誰かが言ってるからコンパイラ改良されるわけで

937 名前:デフォルトの名無しさん [2021/03/01(月) 09:52:48.41 ID:Qi7MAN5S.net]
PGは、コンパイラが規格準拠してくれる日のために #if #endif で区切ってすぐに切り替えできるようにしておくことしかできない。
dirent周りのカオスを知っているなら、規格準拠をうるさく言う虚しさを理解しているはず。

938 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 10:34:18.93 ID:770X86Bb.net]
商用コンパイラを商売で使うならサポート契約とセットじゃねーの?
使い倒さないと契約料丸損やないけ。

939 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 10:42:44.99 ID:N/bll+Sf.net]
>>922
いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?

ちな俺はVCのバグ報告(テンプレート周りとか気付かれにくい部分)何度かしてるが、直るのは早くても半年後だよ
仕事でなくともとりあえず何とか回避するしか無いし、報告するにも再現性あるコード提供しないと迷惑かける
皆お前みたいに暇じゃねーんだよ

940 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 10:52:02.51 ID:f1Pg/hcl.net]
>>923
こういうのって結構な割合で最適化の不具合だったりするよね
特に組み込み系だとしょっちゅうそういうのあるから、該当箇所だけ最適化レベル下げて通したりしてるわ
もちろん不具合の報告もしてるけど修正まで時間かかるからね



941 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 11:11:13.26 ID:770X86Bb.net]
すぐにとはいかない現実があるのはわかるが、サポート契約の内容を本当に把握して言ってる?

商品の瑕疵に対応するのはあたりまえだからサポート契約ってのはそれ以上のものだよ。
契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。

VC のバグ対応がよくないならそれは VC のサポートチームが良くないってだけだ。

942 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 11:12:35.72 ID:Qi7MAN5S.net]
#if #endif マクロがない言語は無駄にネストするのが欠点だと思う。

943 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 11:38:15.03 ID:770X86Bb.net]
#if での切り分けだってネストはありうるけど、
それが見た目に分かりづらかったりするし、
いいことばかりじゃないよ。

944 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 14:12:42.88 ID:CPl5J/qU.net]
一昔前なら effective c++ くらいは読もうってとこだったが、
今はどうだろうな。efective modern c++ でも足りない感じがする。
てかc++やるなら自分であれくらいのポイント抑えるくらいの準備が必要かもしれんという地獄。

945 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 14:23:24.82 ID:Qi7MAN5S.net]
スマートポインタが標準規格に採用されたC++11とそれ以前では、作法が随分違ってくる気がするよ。

946 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 17:34:12.59 ID:oQ7wqd0O.net]
>>917
「文句」みたいな感情的なものじゃなく
ドライにバグレポだ
再現コードだけじゃなく回避方法もつけて

947 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 20:24:36.67 ID:YhH9VVk1.net]
>>923
> いつも思うけど、お前仕事で書いたことねーのに何でそんな偉そうなん?

やめたれw

948 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 21:14:48.91 ID:Dkl+jirL.net]
>>925
> 契約内容によるけど、コンパイラのバグである証明とか全部してやる必要はかならずしもなかったりするぞ。
無いかも知れんが、「なんかおかしいんです~」でバグの特定がめっちゃ困難なことはプログラマーは身を持って知ってるから
そもそもバグの解決が遠のいたら苦しむのは自分だし

949 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 21:56:02.87 ID:N/bll+Sf.net]
>>931
いや、純粋な言語仕様の話なら別に偉そうでもいいのよ正しい事書いてくれてるなら

950 名前:はちみつ餃子 mailto:sage [2021/03/01(月) 23:56:40.27 ID:770X86Bb.net]
>>932
雑な報告でいいというわけではないが、
サポート契約の利用率が非常に低い (値段は高いのに!) というのはよく聞く話なんで、
報告して対応待ちというだけじゃなくてもっとプロジェクトに巻き込んでいいはずなのになという感じ。

C++ の話じゃないけど、 LispWorks (Common Lisp の処理系) のバグ報告をしたら数日中に暫定パッチが
出てきたりとかワークアラウンドの提案とかもしてくれるという事例を利用者のブログで
見たことがあって商用処理系ってすげーなーと思ってたんだが、
そういう対応のほうが例外的に良すぎるだけなんかね?



951 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 00:07:05.02 ID:n7F7EI9c.net]
>>934
そういう対応はマイナーメーカーの方がいいことが多いよ
MSの対応が悪いとは言わないけどユーザーがアホほど多いから処理系のバグにぶち当たる可能性も低いし

952 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 00:37:21.45 ID:wbC9damv.net]
スケジュールきついだけかもよ
バグがあるのわかってたけど数日かかりそうだから放置
バグ報告が出たから優先度上げて修正

953 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 02:03:18.16 ID:+qoPTldB.net]
そもそもユーザー数がアホみたいに多くてあらゆる層で利用されてるようなコンパイラだと
バグ報告あがってきてもまずそれほんとにバグなの??
ていうかまたコイツのリポートか!!!もしかしてただのいやがらせとかじゃないの??とか
色々まず疑ってかからないケースも半端なく多いだろうしな

954 名前:デフォルトの名無しさん [2021/03/02(火) 05:18:47.46 ID:+XzLrHKh.net]
>>923
あわしろ氏は、はちみつのことを褒めてたけどな。
見どころがあるから弟子にしてやっても良いと。
月一万で弟子にしてやるぞ。

955 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 05:46:06.48 ID:eqvY2Z+d.net]
>>934
サポート契約はどんなに使い倒しても契約料が戻ってくるわけじゃない
自分が頑張ってインカムを増やすのが「元を取る」ということだ

956 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 06:15:09.36 ID:1/ifTUd4.net]

957 名前:rel="noopener noreferrer" target="_blank" class="reply_link">>>934
VSのサブスク(旧MSDN)入ってる企業なら優先的に対応してくれるかもしれんけどね
ただVS2019の更新は数日とかのスパンでは来てないやろ(しかもベータを経てからじゃなかったか?
Xcodeのclangなんかはもっと遅い
そのLispWorksとかいうのは例外的だろうね

で、みんな回避方法くらいは自分で見つけるし直るまでの間何もしないわけにはいかんからな
[]
[ここ壊れてます]

958 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 06:43:01.65 ID:auUulvn4.net]
コンパイラを作っている人は他の誰よりも標準規格に詳しい。
コンパイラが規格準拠できないのはなんらかの事情がある。釈迦に説法はカッコ悪い。

959 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 11:52:24.56 ID:K6P+Ktrz.net]
cl書くけどlispworksは資料もすごいのでお世話になる、中の人がlisp界隈で愛称で呼ばれるくらい精力的なんで、ただそうなだけだと思う
まあフリーな処理系使うけどな
しかしニッチ過ぎるlispのどこで儲けてるのやら全く謎

960 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 22:42:51.15 ID:NRNfCe84.net]
言語としての機能はともかく、lispはマスコットがきもすぎ



961 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 22:45:21.36 ID:NT1aj9pH.net]
言語を作った人の本を読むのが一番良い

962 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 22:50:53.20 ID:NT1aj9pH.net]
ていうか言語を作った人の本に載っているサンプルコードが
言語の思想を一番正確に表現しているはず……

963 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 04:56:27.42 ID:W4jJ9FhP.net]
禿の思想はC++03までだろ
頑なにラムダ式とrange-based-for-statementを拒み続けたところまで
4th editionでasyncを持ち上げてたけどその後の展開がアレだし

964 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 06:51:09.01 ID:gVMBPcTA.net]
>>943
googleさんのImage for ...サジェストに
caution: made with alien technologyって標語の例の生物のロゴが出てきやがるのは風評被害
rplacd、dpb、fmakunboundとかほぼほぼ英語だし明らかにエイリアン語ではない
cも大概だしな

965 名前:はちみつ餃子 mailto:sage [2021/03/03(水) 14:59:21.41 ID:ymUPAFSA.net]
>>943
C++ も似たようなもんだろ
https://www.pixiv.net/artworks/31803602

966 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 16:32:38.43 ID:wyPUKIrf.net]
うわ下品な絵

967 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 19:08:40.13 ID:7D0nPsrG.net]
>>948
これは・・意外と嫌いではない・・w

968 名前:デフォルトの名無しさん [2021/03/03(水) 19:15:48.54 ID:zRjA/+hm.net]
オライリー表紙絵みたいな動物の絵じゃないと、しっくりこない。

969 名前:デフォルトの名無しさん [2021/03/03(水) 22:54:00.65 ID:on2XNxxF.net]
オイリー禿山。

970 名前:デフォルトの名無しさん [2021/03/04(木) 11:11:37.69 ID:J6mhpq5t.net]
禿と禿(かむろ)の違いが判らない



971 名前:デフォルトの名無しさん [2021/03/04(木) 13:03:17.03 ID:K63vSywh.net]
カムロは半グレ

972 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 13:36:37.45 ID:Ep7EXP13.net]
c++は仕事で書いてない人ほど好きな言語

973 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 14:22:00.04 ID:qn7RQ+4J.net]
と、仕事で書いてないやつが言う

974 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 15:32:17.13 ID:9GqbczPP.net]
二人以上でやるとOOPの思想的違いがぶつかって最悪破綻するんだよな

975 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 15:33:34.57 ID:9GqbczPP.net]
で、仕事でやるときは、最下層にレベル合わせないとモノが出来上がらないしね

976 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 17:35:44.00 ID:Ep7EXP13.net]
自分一人ならさぞかしすごいソフトウェアが書けると思ってるんですね。すごいですね。

977 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 19:51:50.17 ID:cqTSJRKn.net]
>>955
それあると思う
アマチュアにこそ好かれる言語だと思う(;^ω^)

978 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 20:33:50.17 ID:Xyn3qjeu.net]
constexpr制限きつすぎ

979 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 20:47:45.23 ID:FQXwH3J2.net]
C++11の頃ならともかく今そんなにきついか?

980 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 05:58:33.51 ID:BcBZQBoi.net]
C++20、情報過多でしんどい



981 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 06:14:45.51 ID:ddot6YlQ.net]
std::variant を使い始めたのですが、例えば variant の中身が4種類あって、そのうちの
2種類とか3種類だけに対し共通なコードを実行したい、ときにはどんな書き方がありますかね?
全部に同じコードを適用するなら std::visit() でいいわけですが。

982 名前:デフォルトの名無しさん [2021/03/06(土) 13:33:27.36 ID:bGzUu7RI.net]
apply

983 名前:デフォルトの名無しさん mailto:sage [2021/03/06(土) 20:35:43.51 ID:aLQdimbx.net]
>>964
共通処理を別の関数にまとめたうえで、visitする時に各型のオーバーロードでそれを呼び出す
visit時にジェネリックラムダを使って内部でif constexprで分岐
visit時にオーバーロードされた関数オブジェクトを用いて、共通処理が必要な型について呼び出されるところをテンプレートにして、他は型を指定しておく
visit時にオーバーロードされた関数オブジェクトを用いて、コンセプトで分岐
.index()とif文で書き分ける

984 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 23:48:37.36 ID:B2szmBNH.net]
>>962
msvcのバージョン古くて。
c++14に対応してない。c++11でやってるイメージ。再帰でどんどんソースが汚れる。

985 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 13:31:16.40 ID:b6BdhXEV.net]
int getX() const { return mX; }
みたいな関数があるクラスのメンバ関数内でmXを参照するときに
mX と getX() のどっち使うのが一般的な書き方?

986 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 14:04:43.65 ID:8PvVb8hX.net]
>>968
確かにこれはいつも悩むなー
きっとアクセサ使うべきなんだろうけどね
頻繁にアクセスするならローカル変数に代入した方が早くなったりするし、一般的にクラス宣言に書いてるのもはインライン展開されてコスト的には変わらないだろうしね

むしろ他の言語のときにインライン展開なんてされないからめちゃくちゃ悩む

987 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 14:10:23.61 ID:mzPrKkeu.net]
プロパティがないからな

988 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 15:16:37.41 ID:ZK+TZHvn.net]
なんでもかんでもgetterとかはJAVAから来たのかとか思ってしまう
取得時に演算しないならそもそもgetterなんか作らない方が分かりやすいと思うのだが

989 名前:デフォルトの名無しさん [2021/03/10(水) 15:36:26.11 ID:pTnyTINd.net]
>>971
C#みたいなのはそれはそれでわかりにくいから、getterも関数がいい。

990 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 15:47:37.68 ID:qvIOwUBa.net]
無理にgetter作れってのはアホだなと思うけど、まあgetterくらいならそこまで問題になることもないかなとは思う。
やたらめったらsetter作ってたら死ねとは思うが。



991 名前:デフォルトの名無しさん [2021/03/10(水) 15:50:25.97 ID:pTnyTINd.net]
const 属性をうまく使えば、getterを減らしても安全にコーディングできる。

992 名前:デフォルトの名無しさん [2021/03/10(水) 15:55:29.61 ID:SA6nop04.net]
オブジェクト指向に侵されてるとプロパティが欲しくなるだろう。

しかし、本物のC++は知っている。

それは間違いだと。

993 名前:デフォルトの名無しさん [2021/03/10(水) 19:38:24.39 ID:pTnyTINd.net]
クラス外からは以下のようにconst 属性をつけてアクセスさせれば心持ち安全になる。
const MyClass& getInstance() const { return *this; }

994 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 19:39:09.45 ID:pDjVp4Qi.net]
>>968
フックを残すかどうかだな
abortとterminateみたいに

995 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 20:37:43.62 ID:wDDQFNF0.net]
JavaBeans方式のプロパティはリフレクションあってこそのものなのにC++で真似してもなー。

996 名前:デフォルトの名無しさん [2021/03/10(水) 21:11:42.58 ID:98wPPrPT.net]
JavaFXのプロパティは観測可能になってたすごかった
データバインディングとかリアクティブとかプログラムの書き方もずいぶん変わったよね

997 名前:デフォルトの名無しさん mailto:sage [2021/03/11(木) 01:07:59.93 ID:6JW0gImZ.net]
そうだね流石Oracleだね

998 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 00:57:21.49 ID:9IOLdfat.net]
https://ideone.com/0FptIo
だれか、剰余の符号関係を教えてくれ。

999 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 01:32:57.35 ID:I1KnPozY.net]
たぶんCから変わってないよな?
(a/b) * b + a%b == a
以上に説明できることはないと思うけど
他になにかあるの?

1000 名前:はちみつ餃子 mailto:sage [2021/03/12(金) 03:04:36.84 ID:ByeOJ4Y7.net]
符号の向きは C++11 から仕様に入った。
(それはでは処理系定義)
C では C99 から。



1001 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 08:30:25.58 ID:GKbHXc3G.net]
プロパティーは継承できたりインターフェースとして定めたりできるのが強み
だがそれしか強みが無i

しいて言えばリフレクションが使える言語なら、getterとsetterを同一の識別子で紐付いた形で列挙できる
というのわある鴨、(関数型のシグネチャでgetterとsetterを与えたらそうはいかん

1002 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 08:36:14.31 ID:GKbHXc3G.net]
P=Q・X+R (0≦R<Q)
ので除数が負の%とか定義不能
被除数が負の場合はしらそん
多分Rが非負でなければならないから多分XはPより負の側に振れねばならないのではないか

1003 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 14:00:09.40 ID:9IOLdfat.net]
未定義っぽいですね。ありがとう。

1004 名前:デフォルトの名無しさん [2021/03/12(金) 16:14:00.58 ID:EbD8nxkK.net]
C/C++に限らず界隈では「負数の剰余をとるべからず」という伝承がある

1005 名前: mailto:sage [2021/03/12(金) 20:35:32.66 ID:IXuMqCK3.net]
>>985
剰余の定義は、その定義だけではないですね
「最小正剰余」のほかには「絶対的最小剰余」もあります
https://ja.wikisource.org/wiki/%E5%88%9D%E7%AD%89%E6%95%B4%E6%95%B0%E8%AB%96%E8%AC%9B%E7%BE%A9/%E7%AC%AC1%E7%AB%A0/%E6%95%B4%E6%95%B0%E3%81%AE%E6%95%B4%E9%99%A4

自分で適当な剰余を定義したっていいのですよ

1006 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 14:10:18.80 ID:9o031KiD.net]
0へ丸めるtruncate算だったかと
mod算するときに結構困るのでユークリッド算関数は常にヘッダに入れてる
a % 2 == 1 // -1かもしれない
まあ偶奇判定くらいなら!=0で取り繕えるけど
ネットで見かける拡張ユークリッドのトイプログラムは大体間違ってるね
負の除数を想定してないgcdならそれでいいけど、ベズー係数求める時に負の被除数を扱えないと一般解の公式で他の解出してお茶は濁せるけど
有限体やら他の体とテンプレート共有できない

1007 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 23:25:02.49 ID:H7rJK4fS.net]
ttp://open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4885.pdf

1008 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 08:32:15.77 ID:j6rur0Vp.net]
静的ライブラリを作るときに-fPICを指定する必要はないよね?

1009 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 09:41:25.38 ID:mzxuOn07.net]
OSによるのでは

1010 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 23:28:52.74 ID:iFQHROzx.net]
PICマイコン用のバイナリが吐かれる



1011 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 07:52:17.23 ID:PNXF+EC1.net]
struct a{};
struct b:private a{};
b c;
(a*)&c; //ok

この下痢糞仕様は何?
こう決まった理由が知りたい

1012 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 08:46:44.63 ID:QJMmjFss.net]
>>994
C形式のキャストを使ってるからではなくて?
どんなポインタにもキャストできると思うけど

1013 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 09:11:00.00 ID:PNXF+EC1.net]
reinterpret_castとちゃうで

1014 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 09:17:53.26 ID:R+oM8cup.net]
たとえ(int*)&c;でも通るでしょ

1015 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 09:40:19.90 ID:PNXF+EC1.net]
仮想継承にするとダウンキャストはできなくなるんで
型を無視しているのでもなさそう

1016 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 10:03:59.75 ID:FhOgWspo.net]
ポインタは任意のポインタに変換出来る
未定義動作になる可能性があるのはデリファレンスするコードを書いた場合

1017 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 10:41:19.80 ID:uPqg/PBu.net]
64bitアプリで32bit整数値をvoid*にキャストしようとするとエラーになる場合があるね。
それを親切と感じることが出来れば玄人。

1018 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 74日 16時間 47分 20秒

1019 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef