[表示 : 全て 最新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/

テンプレここまで

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