[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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.022s