[過去ログ] C++相談室 part154 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
以上に説明できることはないと思うけど
他になにかあるの?
1-
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.140s*