C++相談室 part154at TECH
C++相談室 part154 - 暇つぶし2ch950:はちみつ餃子
21/03/01 23:56:40.27 770X86Bb.net
>>932
雑な報告でいいというわけではないが、
サポート契約の利用率が非常に低い (値段は高いのに!) というのはよく聞く話なんで、
報告して対応待ちというだけじゃなくてもっとプロジェクトに巻き込んでいいはずなのになという感じ。
C++ の話じゃないけど、 LispWorks (Common Lisp の処理系) のバグ報告をしたら数日中に暫定パッチが
出てきたりとかワークアラウンドの提案とかもしてくれるという事例を利用者のブログで
見たことがあって商用処理系ってすげーなーと思ってたんだが、
そういう対応のほうが例外的に良すぎるだけなんかね?

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

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

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

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

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

956:デフォルトの名無しさん
21/03/02 06:15:09.36 1/ifTUd4.net


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



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

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

960:デフォルトの名無しさん
21/03/02 22:42:51.15 NRNfCe84.net
言語としての機能はともかく、lispはマスコットがきもすぎ

961:デフォルトの名無しさん
21/03/02 22:45:21.36 NT1aj9pH.net
言語を作った人の本を読むのが一番良い

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

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

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

965:はちみつ餃子
21/03/03 14:59:21.41 ymUPAFSA.net
>>943
C++ も似たようなもんだろ
URLリンク(www.pixiv.net)

966:デフォルトの名無しさん
21/03/03 16:32:38.43 wyPUKIrf.net
うわ下品な絵

967:デフォルトの名無しさん
21/03/03 19:08:40.13 7D0nPsrG.net
>>948
これは・・意外と嫌いではない・・w

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

969:デフォルトの名無しさん
21/03/03 22:54:00.65 on2XNxxF.net
オイリー禿山。

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

971:デフォルトの名無しさん
21/03/04 13:03:17.03 K63vSywh.net
カムロは半グレ

972:デフォルトの名無しさん
21/03/04 13:36:37.45 Ep7EXP13.net
c++は仕事で書いてない人ほど好きな言語

973:デフォルトの名無しさん
21/03/04 14:22:00.04 qn7RQ+4J.net
と、仕事で書いてないやつが言う

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

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

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

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

978:デフォルトの名無しさん
21/03/04 20:33:50.17 Xyn3qjeu.net
constexpr制限きつすぎ

979:デフォルトの名無しさん
21/03/04 20:47:45.23 FQXwH3J2.net
C++11の頃ならともかく今そんなにきついか?

980:デフォルトの名無しさん
21/03/05 05:58:33.51 BcBZQBoi.net
C++20、情報過多でしんどい

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

982:デフォルトの名無しさん
21/03/06 13:33:27.36 bGzUu7RI.net
apply

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

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

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

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

987:デフォルトの名無しさん
21/03/10 14:10:23.61 mzPrKkeu.net
プロパティがないからな

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

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

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

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

992:デフォルトの名無しさん
21/03/10 15:55:29.61 SA6nop04.net
オブジェクト指向に侵されてるとプロパティが欲しくなるだろう。
しかし、本物のC++は知っている。
それは間違いだと。

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

994:デフォルトの名無しさん
21/03/10 19:39:09.45 pDjVp4Qi.net
>>968
フックを残すかどうかだな
abortとterminateみたいに

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

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

997:デフォルトの名無しさん
21/03/11 01:07:59.93 6JW0gImZ.net
そうだね流石Oracleだね

998:デフォルトの名無しさん
21/03/12 00:57:21.49 9IOLdfat.net
URLリンク(ideone.com)
だれか、剰余の符号関係を教えてくれ。

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

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

1001:デフォルトの名無しさん
21/03/12 08:30:25.58 GKbHXc3G.net
プロパティーは継承できたりインターフェースとして定めたりできるのが強み
だがそれしか強みが無i
しいて言えばリフレクションが使える言語なら、getterとsetterを同一の識別子で紐付いた形で列挙できる
というのわある鴨、(関数型のシグネチャでgetterとsetterを与えたらそうはいかん

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

1003:デフォルトの名無しさん
21/03/12 14:00:09.40 9IOLdfat.net
未定義っぽいですね。ありがとう。

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

1005:
21/03/12 20:35:32.66 IXuMqCK3.net
>>985
剰余の定義は、その定義だけではないですね
「最小正剰余」のほかには「絶対的最小剰余」もあります
URLリンク(ja.wikisource.org)
自分で適当な剰余を定義したっていいのですよ

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

1007:デフォルトの名無しさん
21/03/17 23:25:02.49 H7rJK4fS.net
URLリンク(open-std.org)

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

1009:デフォルトの名無しさん
21/03/22 09:41:25.38 mzxuOn07.net
OSによるのでは

1010:デフォルトの名無しさん
21/03/22 23:28:52.74 iFQHROzx.net
PICマイコン用のバイナリが吐かれる

1011:デフォルトの名無しさん
21/03/24 07:52:17.23 PNXF+EC1.net
struct a{};
struct b:private a{};
b c;
(a*)&c; //ok
この下痢糞仕様は何?
こう決まった理由が知りたい

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

1013:デフォルトの名無しさん
21/03/24 09:11:00.00 PNXF+EC1.net
reinterpret_castとちゃうで

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

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

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

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

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

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch