C++相談室 part154
..
110:デフォルトの名無しさん
21/01/14 07:48:23.53 mrWYZ3Pm.net
もちろん、パーサーに限った話ではないですよ。
例です。
111:デフォルトの名無しさん
21/01/14 09:22:59.17 EIDQMz1r.net
みんながみんなパーサーを開発する側じゃないからなー
もっと身近な例はないですか?
このようなデザインパターンがプッシュ型だとこうなる、みたいな
112:デフォルトの名無しさん
21/01/14 09:29:21.76 mrWYZ3Pm.net
>>110
使う側にとって良いことなんですよ。
それと、プッシュ型は万能ではないんですよ。
一部のコンポーネントの部品化に対して利益があるのです。
113:デフォルトの名無しさん
21/01/14 10:01:10.49 mp+NLhBe.net
>>111
身近な例はないかという問いに対しその回答は意味不明では?
114:デフォルトの名無しさん
21/01/14 10:15:16.01 mrWYZ3Pm.net
まあそうですね。
すいませんでした。
115:デフォルトの名無しさん
21/01/14 10:22:13.84 FFXK54Rt.net
身近な例で利点があるなら広めるのに協力するのもいいが今の時点で利点が分からん。
116:デフォルトの名無しさん
21/01/14 15:40:36.18 qrpkNJTC.net
別にC++だけの問題じゃないんだけど…質問…例えば…エクスプローラのようにファイル一覧出すじゃん…
画像や動画は…サムネイルを出すじゃん…このサムネイルは非同期で更新になるじゃん…
一度開いたら…キャッシュから読み込みたいじゃん…このキャッシュの保存ってさぁ…一意にするのに…
ファイルパス・更新日時・サイズである程度一意になるけど…完璧な一意ではないじゃん…
同じ名前・同じ更新日時・同じサイズで上書きされたら、前の画像がサムネイルに出るじゃん…
どうすんの?
117:デフォルトの名無しさん
21/01/14 15:42:53.95 qrpkNJTC.net
キャッシュなんてそんなものだから…それでいいのかなぁ…
118:デフォルトの名無しさん
21/01/14 15:53:35.11 mp+NLhBe.net
その気持ち悪い「...」をやめてくれ
119:デフォルトの名無しさん
21/01/14 15:55:13.17 EIDQMz1r.net
ファイルパスと更新日時で一意になると考えていいでしょ
コンテンツが変更されれば更新日時が進むという前提で
それさえも許せないクリティカルなシステムならファイルの全バイト列から衝突率の低いハッシュ作るとかファイル読むのと変わらんことになる
クリティカルなシステムではキャッシュ使わんな
120:デフォルトの名無しさん
21/01/14 16:05:02.51 qrpkNJTC.net
なるほど…。
121:はちみつ餃子
21/01/14 16:09:33.34 9qLPLWCT.net
URLリンク(martinfowler.com)
> There are only two hard things in Computer Science: cache invalidation and naming things.
計算機科学においては二つの難しいことがあります。
キャッシュの無効化と名前の付け方です。
122:はちみつ餃子
21/01/14 16:16:29.09 9qLPLWCT.net
ファイルシステムによるけど iノード番号だったり
それに近い管理機構で一意に特定できる場合もあるんじゃないの。
サムネイルくらいなら雑でいいやという割り切りもあると思うけど、
ある程度は不整合がないようにする努力もしてると思う。
123:デフォルトの名無しさん
21/01/14 23:16:54.98 9gUF6PTW.net
特徴的な文体はblogでも見た!
124:デフォルトの名無しさん
21/01/14 23:49:25.09 9gUF6PTW.net
スヌープとLRUでおk
この2つでダメだという香具師は、
スヌーピングのロジック設計をサボっているか、
メモリをケチって必要量に未達なだけ
125:デフォルトの名無しさん
21/01/16 08:13:56.08 dLwYQ6PK.net
おはようございますみなさま、質問させてください
ユーザー定義クラスを作成し、循環参照を防止するためweak_ptrをメンバに持たせています。
そして任意の処理でshared_ptrをweak_ptrに代入し使用したいと思っておりました。
しかし、メンバ関数内部でweak_ptrを使用すると、式にはポインタ型が必要です、旨のエラーが出てしまいます。
調べてみたところ、lock()でshared_ptrに再度権利委譲するとshared_ptr側から動くのですが、私が初心者な事もあり何か釈然としません(我が儘でしょうか……)
一度weak_ptrに落とし込んだものを再度shared_ptrに戻す部分が引っかかっているのだと思います(気にしすぎですかね)
そこでお聞きしたいのですが、クラス内部で動的に定めたいと思っているweak_ptrを使う際に、これ以外の方法はありますでしょうか?
それとも上記の通りlock()で一時的なshared_ptrに束縛した方がいいのでしょうか?
朝から長文失礼しました
126:デフォルトの名無しさん
21/01/16 08:49:06.94 ld2GCDwz.net
ロックしないと知らない間に参照先のshared_ptrで持ってるオブジェクトが破壊されてても文句言えないけどそれでもいいの?
weak_ptrってそういうものだぞ
127:デフォルトの名無しさん
21/01/16 09:17:41.99 dLwYQ6PK.net
>>125
ありがとうございます。
おっしゃる通りだと思います。
納得いたしマスター!
128:デフォルトの名無しさん
21/01/19 02:35:16.36 y82ZfCrD.net
移譲って要は継承せずにオブジェクトとして使うってことですよね?
なぜ「移譲」なんてわけわからない名前がついてるんですか?
129:デフォルトの名無しさん
21/01/19 04:45:45.04 KGVX5wki.net
移譲じゃなくて委譲な。
転送でもいいと思うよ
130:デフォルトの名無しさん
21/01/19 07:52:05.16 Uy0+fZqK.net
代理、丸投げ
131:デフォルトの名無しさん
21/01/19 09:18:39.64 xem4SJ/U.net
日本語の問題だけど移譲は同じレベルに権限等を移すこと、委譲は下のレベルに移すことらしい
委譲は継承より権限の制限があるという含みがあるんだと思う
あくまで人間の組織での比喩なんだろうけど
132:デフォルトの名無しさん
21/01/19 09:54:48.36 QmODXpTw.net
名前付けるほどのことか?と問われればたしかにそう思う
クラス内で他のクラスオブジェクトを使ってるだけw
133:デフォルトの名無しさん
21/01/19 11:29:25.06 Bl6CuSRR.net
移譲コンストラクタってC++11まで存在しなかったの?
134:はちみつ餃子
21/01/19 11:40:18.61 Zp03eKCw.net
>>132
はい。 C++11 で導入された機能です。
それまで存在しませんでした。
135:デフォルトの名無しさん
21/01/19 16:38:03.96 8JRMUdmW.net
C++03の頃のプログラミングめちゃくちゃ大変そうだね・・・
136:デフォルトの名無しさん
21/01/19 20:00:27.80 rn87bDt4.net
「オブジェクト指向?じゃあ継承しなきゃ!共通実装はみんな継承でポリモにしろ!」みたいなノリのクソ設計が溢れかえった時期があって
カウンターとして無理に継承せんでもオブジェクト持って使えばええんやでっていう事に名前付けたのが委譲とかコンポジションとか
しょうもないんだけど継承教に対抗するには名前が必要だったんよ
137:はちみつ餃子
21/01/19 21:06:03.25 Zp03eKCw.net
>>134
そのとおりだよ!
前スレで C++11 (以降) に否定的な意見も出てるが、
使える状況であえて C++03 (以前) を選択したがる感覚はわかんね。
138:デフォルトの名無しさん
21/01/19 22:52:29.91 Bl6CuSRR.net
テンプレート使わなければC++03でもいける(かも)
139:デフォルトの名無しさん
21/01/19 23:09:23.44 7+t4BBWY.net
なんか、ここはどこ私はだあれなやついるなw
なんでテンプレートが出てくるのか
140:デフォルトの名無しさん
21/01/19 23:29:07.70 LToFUUAC.net
C++03にはテンプレート無いしな
141:デフォルトの名無しさん
21/01/19 23:43:32.07 7+t4BBWY.net
何を狙ってボケてんのかわからん
解説求む
142:デフォルトの名無しさん
21/01/20 19:27:35.22 kPiTytYK.net
C++スゲー=俺スゲーしたいだけの学生が増えたんだろ
>>134, >>136
エアプ乙
便利にはなったが、メタプログラミングやってても委譲コンストラクタ無くてもそんなに困らんかったぞ
メンバの初期化には関数の戻り値だって使えただろ、どこで困るんだ?
143:デフォルトの名無しさん
21/01/20 19:33:42.85 kPiTytYK.net
あ、委譲コンストラクタが無くても、の話であって03と11がどうこうじゃないよ
144:デフォルトの名無しさん
21/01/20 21:35:54.62 UBOdXm83.net
constメンバの初期化をしたいとき
初期化リストで初期化すれば良いっていやー良いが
コンストラクタ毎に初期化リストを書かねばならない
メドイ…
145:デフォルトの名無しさん
21/01/20 21:36:27.27 UBOdXm83.net
あと参照メンバも…!
146:デフォルトの名無しさん
21/01/20 21:47:26.52 MvJ8v0/f.net
>>141
C++03で何が困るって、<system_error>や<filesystem>や<execution>みたいのがなかったことだよ
新機能を乱発してプログラマを喜ばせるのを慎むというハゲの主張はわかるが
あまりにも保守的すぎて現実から乖離し始めていた
147:デフォルトの名無しさん
21/01/20 21:48:56.40 MvJ8v0/f.net
<valarray>の立場がなくなるから<execution>をためらうとか本末転倒だろうが
148:デフォルトの名無しさん
21/01/20 21:57:51.96 kPiTytYK.net
>>143-144
え、そんな場面滅多に無いと思うが・・・
委譲するときは他のコンストラクタしか初期化子使えないはず・・
と思ったが非constなものは全部コンストラクタ本体で初期化、ならいけるか
149:デフォルトの名無しさん
21/01/20 23:00:47.64 UBOdXm83.net
>>146
同じことをするのに複数のやり方があったらプログラミング言語界のPerlになってしまう
お禿様の気持ちはワカル
150:デフォルトの名無しさん
21/01/21 02:42:42.14 /P5UVCOb.net
まるで Perl はプログラミング言語界の外に居るような言い方ね。
151:デフォルトの名無しさん
21/01/21 06:07:35.61 lL8gSm1b.net
なんだろう、スクリプト言語とかコンパイラ言語とかいうのかね
152:デフォルトの名無しさん
21/01/21 07:17:30.26 /ZdL1i9k.net
厄介者のperl
153:デフォルトの名無しさん
21/01/21 07:40:13.27 Z8coO7Zb.net
perlは遊び道具としては面白いのかもしれないけど本番で使うにはちょっと…
154:デフォルトの名無しさん
21/01/21 08:36:52.78 RnFvGHUF.net
Git for windowsと一緒にインストールされる遊び道具、という世界観ですね。大切にしなさい。
155:デフォルトの名無しさん
21/01/21 08:52:53.32 2LdLfW0X.net
へー、findやopenss
156:lは便利に使ってたけどperlまで入ってたのか。 まぁ、もう使うことはないだろうけど。
157:デフォルトの名無しさん
21/01/21 09:35:52.84 RnFvGHUF.net
Perlを厄介と考えるPGのほうがPerlよりも先に厄介払いされる。若いくせに向学心がないことが垣間見える。
158:デフォルトの名無しさん
21/01/21 10:09:36.15 rjSQv0Wq.net
向学心とかw
むしろperl使ったことあるからこその意見だろ
159:デフォルトの名無しさん
21/01/21 10:25:31.85 RnFvGHUF.net
Perlを難しいと思うようだとあまり伸びしろがないね。職業変えたほうがいいかもね。正直でごめんね。
160:デフォルトの名無しさん
21/01/21 10:51:23.68 /0jxrBnU.net
>>155はマジで言ってるのか
10年くらい眠ってたのか?
161:デフォルトの名無しさん
21/01/21 11:09:21.23 rjSQv0Wq.net
最近のモダン(この言い方自体が既に古いがw)な言語使ったことないんじゃね?
あとそれなりの規模の開発したことないんだろうね
perlは書捨てのツール作ったりするには便利だったけど今更新規で使うことはないわ
162:デフォルトの名無しさん
21/01/21 15:15:36.61 upjC6TmF.net
Perlの開発者ってタッチタイピングできなかったのかな?
なんであんなに1文字の特殊変数だらけの言語作っちゃったの?キーボード入力が楽になるとか思っちゃったのかな?
結果は可読性の低いクソースコードが量産されただけだったよね
163:デフォルトの名無しさん
21/01/21 16:04:26.02 eIfq2EBT.net
>>160
gnu-makeやshell scriptも同じ。
emacsも、キーバインドを丸覚え出来る人しか使えない。
作者が記憶力が桁違いにいい人だったりしてな。
164:デフォルトの名無しさん
21/01/21 16:22:10.60 jCImDRpq.net
>16 :デフォルトの名無しさん:2006/03/10(金) 22:15:19
>>>10
>> こんな変数名があちこちに散らばっているのがPerl
>
>大学の研究室のボスは、特殊変数の表をふ〜んと2分ほど眺めて完全に暗記した。
>
>そういうレベルの人たちのための言語なんだなと思って、トイレで血の涙を流した。
165:デフォルトの名無しさん
21/01/21 16:57:53.30 eIfq2EBT.net
表を見た直後なら、俺も暗記してるぞ。
しばらくたったら忘れる。
短期記憶と長期記憶の違いだ。
166:デフォルトの名無しさん
21/01/21 18:03:23.48 ukSw99eK.net
Perlはglobが使えるようになったらuse strictの下でも参照渡しとかできてC++的に組めるようになるからおk
しかしglobを使うことと理解することは別宇宙の話なのであった
167:デフォルトの名無しさん
21/01/21 18:10:26.51 ukSw99eK.net
正確には型グロブ、
168:デフォルトの名無しさん
21/01/21 18:24:32.27 RnFvGHUF.net
このスレ、初心者多すぎ。丸暗記なんて誰もしないぞ。何のためにオンラインヘルプあると思ってんだろう。
辞書持ち込み禁止に慣れた学生の気分なのかな。
169:デフォルトの名無しさん
21/01/21 18:26:55.41 RnFvGHUF.net
自身の理解力のなさを胡麻化すために大げさな言い回ししているように見える。マジでPGむいてないから転職したほうがいいよ。
170:デフォルトの名無しさん
21/01/21 18:30:55.76 RnFvGHUF.net
>>160 みたいな己の能力のなさを棚に上げておおげさな物言いをする人には調査の仕事を振ることすらできないんだが。
171:デフォルトの名無しさん
21/01/21 19:06:10.15 /ZdL1i9k.net
URLリンク(descartes-search.com)
Perlファンたちはその堅牢なパフォーマンスとスケーラビリティを主張するが、すでにPythonのような他の言語に代替され始めている。10年後にはその信者の数も減り、永久に消え去ることだろうw
172:デフォルトの名無しさん
21/01/21 19:17:51.03 RnFvGHUF.net
ちょっと
173:したことをやるのに適しているのがスクリプト言語なのに、そのスクリプト言語の初歩にさえつまづいてしまう人はPGに向いてないんだよ。 正直でごめんね。Perlだけの話してるわけじゃないんだわ。
174:デフォルトの名無しさん
21/01/21 21:03:47.74 ukSw99eK.net
>>169
Perl 6が出るまで無限に待たされそうな気がするから
バージョン5系の消滅は無限の未来なんじゃないかな…
175:デフォルトの名無しさん
21/01/21 21:28:48.83 cjnTDlz3.net
人って第一印象が重要でしょ。
言語もそうだと思うの。
Perlだけの話をするけど、Perlは第一印象で損してる感じ。
PG経験あれば直感的に避けようとする人も少なくないのでは?
176:はちみつ餃子
21/01/21 21:30:02.98 ooF1treM.net
>>171
Perl 6 は 2015 年に安定板がリリースされたぞ。
ただし、旧来の Perl と互換性は全然ないので後に Raku と改称された。
要するに別言語になってしもうた。
177:デフォルトの名無しさん
21/01/21 21:40:40.11 RnFvGHUF.net
>>172
ドルマークを多用するPerlはシェルスクリプトに慣れた人にはむしろ入りやすいはずだけどね。
178:デフォルトの名無しさん
21/01/21 21:46:06.32 6tk1Snw3.net
あわしろ氏はJavaはオワコンこれからはPerlと言ってるけどな。
179:デフォルトの名無しさん
21/01/21 22:21:06.42 rjSQv0Wq.net
なんでこの人自分以外はperl使えない前提なんだろ…
180:デフォルトの名無しさん
21/01/21 22:23:21.95 RnFvGHUF.net
知っている人も多いと思うけど、bash/zsh向けに便利な入力補完ツール fzf が存在する。
そのGitHubにはfzfにPerlを併用するサンプルコードが散見される。
URLリンク(github.com)
今やPerlは、sedやawkより多機能なちょっとしたテキスト改変ツールとして、Perl本来の役割に回帰している。
PerlをCGIを書くための言語と思っている人にはPerlがオワコンに見えるかもしれないが、現実は違う。
181:デフォルトの名無しさん
21/01/21 22:35:21.87 RnFvGHUF.net
python3が入っていない環境はわりとあるけどperlが入っていない環境はまずない。
182:デフォルトの名無しさん
21/01/21 22:35:36.69 Z9MWAls1.net
なんでC++スレでPerl, Perlと連呼するんだろう
おおかた、その心理を察することができるので草生えるwww
183:デフォルトの名無しさん
21/01/21 22:41:15.38 RnFvGHUF.net
本スレテーマであるC++やJavaなどのコンパイル言語のコーディングの生産性を高めるにはスクリプト言語の有効活用が欠かせない。
makeやantではかゆい所に手が届かないもどかしさは今も昔も同じなんだよ。
184:デフォルトの名無しさん
21/01/21 22:54:28.47 H50jUx0j.net
>>168
Perl狂信者かよ
185:デフォルトの名無しさん
21/01/21 22:59:11.40 /ZdL1i9k.net
うかつにもPerl厨の秘口を突いてしまった
186:デフォルトの名無しさん
21/01/21 23:06:26.51 rjSQv0Wq.net
>>177
> PerlをCGIを書くための言語
いつの時代の人よw
187:デフォルトの名無しさん
21/01/22 00:49:01.09 di1fs6eX.net
たしかルビーの素となった言語がペールでは?
188:デフォルトの名無しさん
21/01/22 01:19:07.37 55qwSi9o.net
macOSのソフトウェア更新ツールHomebrewはRuby製。マカーがいる限りRubyは不滅。
189:デフォルトの名無しさん
21/01/22 13:19:25.84 pJ+Dy7HC.net
>>157
PerlもPHPも難しいとは思わないけど
だからこそ排除すべき
190:デフォルトの名無しさん
21/01/22 13:20:41.30 pJ+Dy7HC.net
>>160
>1文字の特殊変数だらけの言語
Rubyのことですね判ります
191:デフォルトの名無しさん
21/01/22 14:12:04.30 aLDuncuZ.net
>>187
Rubyはそれはない。
Perlと間違ってないか?
192:デフォルトの名無しさん
21/01/22 14:18:28.68 WLGQ46hZ.net
C++のところで延々と続けるのもなんだけど、TECOってのは相当複雑怪奇だったみたいね
193:デフォルトの名無しさん
21/01/22 22:15:36.76 HHqI
194:RAh/.net
195:デフォルトの名無しさん
21/01/22 22:18:18.81 3W/g7okM.net
<functinal>で足りるんじゃね?
196:デフォルトの名無しさん
21/01/22 22:50:10.68 LtnZZu+T.net
こちらでどうぞ
スレリンク(tech板)
197:デフォルトの名無しさん
21/01/22 23:49:36.96 LcAiXyQN.net
>>192
C++の「マルチパラダイム」の中に関数型が今後入ることはあるか (あるいはもう入ってるか) という質問なんですが、変なことを聞いていますか?
198:デフォルトの名無しさん
21/01/23 00:00:03.65 rMuiLyZn.net
ぅえ?
199:デフォルトの名無しさん
21/01/23 01:38:03.71 PXGkLjAZ.net
もう入ってるでしょ?
200:デフォルトの名無しさん
21/01/23 04:37:52.61 Vx6mcd5N.net
Perlのソース汚いイメージしかないけどな
201:デフォルトの名無しさん
21/01/23 07:19:17.61 E7+6hgZm.net
std::functionとラムダ式で関数はほぼ第一級オブジェクトとして扱えるからC++はとっくに関数型言語ですよ
モナドだってやろうと思えば作れるよ
202:デフォルトの名無しさん
21/01/23 13:50:31.25 1/fAmr9E.net
じゃーHaskellにできることはC++でもできるし、同じように書けるって言うのかい
203:はちみつ餃子
21/01/23 13:52:40.96 Q+Wu8A2P.net
>>198
なんでそうなるのかようわからんが。
204:デフォルトの名無しさん
21/01/23 14:06:29.89 pKYkJfCY.net
>>160
>1文字の特殊変数だらけの言語
APL記号?
205:はちみつ餃子
21/01/23 14:54:28.68 Q+Wu8A2P.net
>>188
URLリンク(docs.ruby-lang.org)
206:デフォルトの名無しさん
21/01/23 16:26:10.57 LPDMRZtK.net
>>200
懐かしいな
俺アンペールのいじってたよ
207:デフォルトの名無しさん
21/01/23 18:58:05.34 C4WlxIYr.net
>>198
そんなクソみたいなこと言うんだったら、まず「関数型言語」の定義から言えよ。
Lispが関数型言語じゃないとか言い始めそうだな。
208:デフォルトの名無しさん
21/01/24 11:36:54.35 wSlEv8S7.net
Rubyは関数型ωωω
209:デフォルトの名無しさん
21/01/24 12:17:53.22 /MPXRGah.net
カオスコードって意味ならc++とperlが双璧だわな。rubyは別の意味で糞だが。
210:デフォルトの名無しさん
21/01/24 14:46:51.42 bXJjYU1w.net
rubyの糞とrailsの糞がかけ合わさって悪臭漂う糞になる
211:デフォルトの名無しさん
21/01/24 21:13:47.08 hPeuQsPP.net
肛門を保護するために出る粘液はイイ匂いがするので、化学的に類似品が合成され、香水の原料になっています。
ウンコは臭いですが、ウンコの周りには良いものがあるかもしれない。
212:デフォルトの名無しさん
21/01/24 23:17:47.88 bXJjYU1w.net
Co-mon++
213:デフォルトの名無しさん
21/01/25 00:51:35.02 h/LmkNzq.net
>>207
腸液は質感、匂いともに精液に酷似してるっていうのはよく言われてるけど、それのことじゃないよね?
良い匂いの分泌液なんて聞いたことがない
214:デフォルトの名無しさん
21/01/25 09:53:48.54 RU5Fvovq.net
やだこのスレホモ臭い
215:デフォルトの名無しさん
21/01/25 10:13:42.80 uSgkqdKl.net
と言いつつ嬉しそうな吉宗であった。
216:デフォルトの名無しさん
21/01/25 13:06:55.63 sPc2eBUP.net
PerlとC++は、見づらいソースコードに慣れる能力を鍛えてくれる。
Perlをオワコン扱いする人は情弱である。
217:デフォルトの名無しさん
21/01/25 13:11:37.73 54hHF458.net
厄介者のperl厨
218:デフォルトの名無しさん
21/01/25 13:34:11.10 lM5Uli0g.net
糞コードに触れるとアンチパターンがわかるというのは確かにあるが、それを人に勧めるのは気がひける。
219:デフォルトの名無しさん
21/01/25 13:48:32.46 sPc2eBUP.net
まずい酒の味を知らない者には、うまい酒の味を見分けることはできない。
220:デフォルトの名無しさん
21/01/25 21:12:20.67 bQwFUjl3.net
美味い酒の味を知ったら不味い酒は飲めん
221:デフォルトの名無しさん
21/01/25 22
222::13:56.33 ID:IR169uBT.net
223:デフォルトの名無しさん
21/01/25 22:56:10.85 sPc2eBUP.net
まずい酒を飲めなくなることは、プログラミングに置きかえればクソコードのメンテナンスができなくなることを意味しており、スキル低下でしかない。
224:デフォルトの名無しさん
21/01/25 23:11:18.97 bBvI6B4m.net
まずい酒はわかるけどうまい酒はマジわからん…
225:デフォルトの名無しさん
21/01/25 23:57:21.75 sPc2eBUP.net
うまい酒については「水のように飲みやすい」というほめ表現もあるが、なら水飲んどけよという話でもある。
226:デフォルトの名無しさん
21/01/25 23:57:36.36 t4dFVxvz.net
<body>
!unti {nuritakuri}
<body/>
227:デフォルトの名無しさん
21/01/26 00:02:06.39 Qnn6Y+tc.net
<head>
<bukkake> seisi <bukkake/>
<strong> naaaaaaaaa!!!<strong/>
<head/>
228:デフォルトの名無しさん
21/01/26 02:05:34.14 wg8lZWjJ.net
>>220
ほんまこれ
前にカエルの肉を食ったやつが「ほんと鶏肉とおんなじようなもんだから!食べてみて!」
ってしつこいんだが、だったら鶏肉でいいだろなんでわざわざゲテモノ食わにゃならんのか??となる
229:デフォルトの名無しさん
21/01/26 03:51:19.13 uiGtA95I.net
寄生虫が良い風味出すから。
230:デフォルトの名無しさん
21/01/26 06:09:38.08 ZRZozNwf.net
macOSのHomebrewいいね。Perlが最新の5.32.1に即対応。人柱上等なところに惚れる。
231:デフォルトの名無しさん
21/01/26 07:49:52.25 ZI8ZD6Xl.net
安めの食材や有り合わせでうまいもん作れる腕があっても
腐ったものはどうにもできない
例えるなら、これだろ
232:デフォルトの名無しさん
21/01/26 07:59:37.62 xVPuSdRM.net
>>220
酔える水なら。
233:デフォルトの名無しさん
21/01/26 11:52:17.15 XuLptVzr.net
>>223
今ジビエなどとおしゃれに言ってるがゲテモノ食いが今の事態を招いてる
中途半端な科学信仰が何もかも迷信にしてしまって自然を正しく畏れなくなった
234:デフォルトの名無しさん
21/01/26 13:45:24.16 uiGtA95I.net
ちょっと腐ったほうが柔らかくなってアミノ酸も多いよ。
熟成させたと言えばグルメも安心だし。
235:デフォルトの名無しさん
21/01/26 13:48:13.24 uiGtA95I.net
野菜は立てておくと腐らないんだけど、その代わり成長するからね。
光合成できるかも?と思ってなけなしの養分使って葉を伸ばすんだろうけど、光合成は出来ません。
236:デフォルトの名無しさん
21/01/26 13:54:11.58 uiGtA95I.net
野菜の活〆を発明したら儲かるだろな。
放射線以外で。
237:デフォルトの名無しさん
21/01/26 21:06:31.25 Du8Hqhh0.net
いいかげんスレ違い。
238:デフォルトの名無しさん
21/01/26 21:46:24.92 ZRZozNwf.net
プリプロセッサマクロだらけの“汚い”コードを否定したらC/C++の強みを失うことになる。
JavaやC#はプリプロセッサマクロが貧弱なのが玉にキズだ。
239:デフォルトの名無しさん
21/01/26 21:51:10.66 ZRZozNwf.net
pybind11スレがないこんな世の中じゃ〜Python〜
まぁマクロの塊のような代物だが。
240:デフォルトの名無しさん
21/01/27 06:03:44.65 yQalyIAE.net
C++はコミュニティで発言力のある人が大抵率直にものを言い過ぎる、悪く言えば口が悪いので忌み嫌われてるとこある
241:デフォルトの名無しさん
21/01/27 07:30:48.85 eLUquqZ0.net
>>229
カダベリンやムスカリンが発生してたり
セレウス菌が大量にいるのは
そういう問題じゃねえぜ
242:デフォルトの名無しさん
21/01/27 07:48:28.28 4l9V085Z.net
でも、Linux板なんか失敗したボランティアの住所載せて、放火しろとは言ってませんよ??言ってませんよ??・・・などの書き込みあるからな。
それに比べれはだいぶ良識的では?
243:デフォルトの名無しさん
21/01/27 11:26:52.94 cJSBZXf9.net
C/C++のプリプロセッサも貧弱すぎ
244:デフォルトの名無しさん
21/01/27 17:43:27.13 nPuTGnvU.net
C++例外のスタック情報がとれないのはC++の欠点。
例外でスタック情報を使えるJava/C#/Python/Perlはエライ。
245:デフォルトの名無しさん
21/01/27 21:51:38.91 NT655YPf.net
おまえは二度とC++使うな
246:デフォルトの名無しさん
21/01/27 23:04:53.57 TqcnYSNG.net
>>239
スタックフレーム作ればイケるってば
247:デフォルトの名無しさん
21/01/28 09:07:27.76 dmDIUcy2.net
>>235
例えば誰?
248:はちみつ餃子
21/01/28 10:23:46.51 vBYpvnJx.net
>>239
gdb にアタッチしたことないんか?
C++23 には stacktrace が入るから
デバッガを使いこなせなくても少し楽にトレースできるかもな。
249:デフォルトの名無しさん
21/01/28 10:52:39.05 dNWrUHbO.net
>>223
フグは豚肉に触感似てるけどフグの方が美味い
250:デフォルトの名無しさん
21/01/28 10:54:00.53 dNWrUHbO.net
>>228
日本で感染爆発が起きてないのは以前からジビエが流行してたからか
251:デフォルトの名無しさん
21/01/28 10:55:14.42 dNWrUHbO.net
>>230-231
白菜は外の皮じゃなくて中の芯から先に食べろと言われている
252:デフォルトの名無しさん
21/01/28 11:40:01.79 eLxqvNeX.net
>>200
ユニコ時代だからAPLよりずっと先行ってるぞ
組み込み演算子で∩∉とか集合論の記号採用してたりアトミックな演算子は⚛++とか洒落効いてたりする
一方で古代perlのプレフィックスは緩和されてる
253:デフォルトの名無しさん
21/01/28 11:51:37.25 eLxqvNeX.net
∅∘∩ ⊍∪ ⊖ ⊎ ∖≅ ∈ ∉ ∋ ∌ ≡
≢ ⊂ ⊄ ⊃ ⊅ ⊆ ⊈ ⊇ ⊉ ≼ ≽.«»≠
他組み込みではこんな感じか
>= やらよりmずっと可読性高いと思う、エディタもvimとか高機能なのなら問題なかろう
文字を表示してくれるのは特に便利
254:デフォルトの名無しさん
21/01/28 11:58:59.45 kskG1wa2.net
>>245
さすがにコウモリはどこの地方でも食わんだろ
255:デフォルトの名無しさん
21/01/28 17:23:15.04 8Al9oSyF.net
なんでプリミティブ型って継承できんの?
256:はちみつ餃子
21/01/28 17:29:22.44 vBYpvnJx.net
>>250
やりたいときってあるか?
257:デフォルトの名無しさん
21/01/28 17:41:41.73 GsoT0xyU.net
クラスAのオブジェクトをクラスBのメンバにするときってどうやってAのコンストラクタ呼ぶの?
class B{
A a;
public:
B(){
// この辺でAのコンストラクタを呼びたい
}
};
258:デフォルトの名無しさん
21/01/28 17:48:00.82 WrE+/6so.net
>>252
メンバのコンストラクタの方が先に呼ばれる。だからそこでは既にAは構築済み。
どうしてもBのコンストラクタ内でAのコンストラクタ呼びたいなら、メンバ変数はポインタで持つ
259:デフォルトの名無しさん
21/01/28 18:07:20.07 IHrlZHr2.net
>>243
gdbはおいとくとして、Visual StudioってC++例外のスロー位置を追跡できたっけ?
260:デフォルトの名無しさん
21/01/28 18:50:38.47 Hqj+H5f7.net
>>252
初期化リストを使う
B() : a(hoge, piyo)
261:デフォルトの名無しさん
21/01/28 18:54:30.61 IHrlZHr2.net
あとで再初期化したくなること多いから、結局コンストラクタの実装を別の関数に分離すること多いよね。
コンストラクタの種類が増えたら使いまわしたくなるし。
262:デフォルトの名無しさん
21/01/28 19:24:37.48 q3mIN91/.net
>>243
デバッガ使いこなせないとか話にならんだろ・・
263:デフォルトの名無しさん
21/01/28 19:28:49.13 IHrlZHr2.net
264:デバッガやシンボルがない環境でもスタックトレースできたほうが良いと思うけどね。 後発言語の生産性の高さはこの辺の充実ぶりにあるでしょ。
265:デフォルトの名無しさん
21/01/28 19:42:24.27 IHrlZHr2.net
他プロセスと連携するシステムにはデバッガを当てにくい事が多い。
タイミング依存の不具合を追跡する場合、デバッガがまったく役に立たない。
266:デフォルトの名無しさん
21/01/28 20:25:47.81 eBfsAdOM.net
>>258
その手の生産性と成果物の効率はトレードオフでどっちを重視するかが違うだけでしょ
267:デフォルトの名無しさん
21/01/28 20:36:13.14 IHrlZHr2.net
デバッガ使いこなすとか言って悦に入ってる人と会話が噛み合わないんだが。
268:デフォルトの名無しさん
21/01/28 20:36:14.66 yp+dwtvR.net
>>258
だよね
むしろデバッガをアタッチできる環境ならスタックトレースはなくてもなんとかなる
ユーザー環境でスタックトレースがテキストファイルに落ちるようになってるとトラブルシューティングがしやすい
269:デフォルトの名無しさん
21/01/28 21:29:31.41 oPlwADge.net
>>261
ここほとんどアマチュアの人だから許してやろうやw
270:デフォルトの名無しさん
21/01/28 21:48:11.74 q3mIN91/.net
>>261, >>263
悪いがプロだよ
IDEの機能を使いこなせてない初心者が、先に学ぶべきことから逃げて言語だけでどうにかさせようとするような
(いつものことだが)はちみつのミスリードに釘を刺しただけだ
271:デフォルトの名無しさん
21/01/28 21:51:13.66 q3mIN91/.net
>>261
あと、流れを読む限り俺の発言が気に入らなくてファビョってるのは君の方だよね、俺1行しか書いてなかったし(しかも大した内容じゃない)w
何が気に障ったんだ?
272:デフォルトの名無しさん
21/01/28 21:51:23.69 oPlwADge.net
いやごめん、俺は流れは一切追ってなくて他意はないよ
茶化したかっただけ
気にしないで
273:デフォルトの名無しさん
21/01/28 23:50:09.41 g6qVZG7L.net
発狂やないかw
Perlの人かな
274:デフォルトの名無しさん
21/01/28 23:53:15.94 RfcrpqT0.net
>>253,255
じゃあ、Bを構築してしばらく経ってからわかる情報を使ってAを構築したいとき、Aのインスタンスをメンバとして持つのは不可能ということですか?
ポインタで持つ以外の方法はない (想定されてない?) のでしょうか
constなメンバ変数を初期化するときも近いことを思います
275:デフォルトの名無しさん
21/01/29 00:10:27.15 ZIYbfTXe.net
>>268
そういうコンストラクタ制約を持つクラスはけっこう多い。
WindowsのC++向けGDI+ライブラリのクラス群はまさにこれが当てはまる。
広範に存在している以上は受け入れるしかない。
今時は標準でshared_ptrなどの共有ポインタクラスを使えるので、さほど問題にならないでしょ。
276:デフォルトの名無しさん
21/01/29 00:19:48.35 SRnp44iw.net
>>268
Aに引数なしのコンストラクタ、コピーorムーブ代入演算子があるなら、後で作って代入でもいいけど
まぁ特に理由なければ(スマート)ポインタで持った方が無難だし楽
constはどうしようもない
277:デフォルトの名無しさん
21/01/29 00:22:16.89 MWSZTtHp.net
>>268
「Bを構築してしばらく経ってからわかる情報」を返すヘルパー関数を作って初期化リストの中で呼べばいいじゃない
278:デフォルトの名無しさん
21/01/29 07:49:13.10 /axUqcOX.net
データメンバをconstってあんまりやらないな
publicに晒すとかじゃなきゃメンバ関数を
constにするだけで足りるから
あ、staticメンバのconstはよくやるけどね
279:デフォルトの名無しさん
21/01/29 08:02:53.38 1V7SRlCX.net
>>251
ある
実装は同じunsigned longでも意味が違うから別クラスとして扱いたいときとか
private継承できたらナア……
現状(C++03)はプリミティブ型と同じ演算子(のうちの当座のアプリケーションで使うやつ)をいちいち実装したクラスを作って
NDEBUGマクロで実装を切り替えるみたいな涙ぐましい努力が要る
280:デフォルトの名無しさん
21/01/29 08:05:13.74 1V7SRlCX.net
訂正orz
誤: private継承
正: public継承かつoperator unsigned long()はprivateかつunsigned longからの構築はexplicit
281:デフォルトの名無しさん
21/01/29 08:08:37.91 1V7SRlCX.net
メンバをconstにして代入演算子を定義せずにいるとデフォルトの代入演算子をが定義できないとコンパイラに文句を言われる俺環、
282:デフォルトの名無しさん
21/01/29 09:20:50.39 koPyq8om.net
>>273
それ、継承できたとして式の中で混在しても区別されないんじゃね?
テンプレートの型引数で区別するような使い方くらいしか思いつかないが。
283:デフォルトの名無しさん
21/01/29 12:20:22.74 c2S2Mocm.net
メンバ変数のconstはポインタ型ならすることあるけど、値で持つメンバ変数はあんまり意味なくない?
constなくても勝手に外部から書き換えられないように、ちゃんと隠蔽しとけばいいだけでしょ
284:デフォルトの名無しさん
21/01/29 12:35:16.78 2DekME/2.net
>>277
class内の処理においても変更しないつもりだ、変更されることはない、と明示することで意識しておかなければならないことを少し軽減できるのだから、無駄ではないと思う。
手間をかけずにconstにできるならしておけばいいし、逆に無理して複雑なことをしてまでconstにする必要はないという程度のことかと思う。
285:デフォルトの名無しさん
21/01/29 12:55:03.34 c2S2Mocm.net
>>278
たしかにconst付いてればコンストラクタで設定した値がずっと変わらないことが
明示的になるから無意味ではないか
286:はちみつ餃子
21/01/29 14:10:30.45 heeNhc25.net
>>273
そういう用途なら opaque alias という提案だけは出てるけど
どう見てもグダグダなんで、場当たり的な方法のほうがマシだと思うよ。
287:デフォルトの名無しさん
21/01/29 16:04:20.47 5pIDnM+S.net
>>251
3値のboolean作るときってboolean継承すべき?
288:デフォルトの名無しさん
21/01/29 16:07:44.73 5pIDnM+S.net
>>256
言いたいことは判るが
コピーコンストラクタやムーブコンストラクタが勝手に使われるから
デフォルトに任せてると何が起こるかは判ってた方が良い
289:デフォルトの名無しさん
21/01/29 16:10:21.66 5pIDnM+S.net
>>259
COMサーバーというかDX用にフィルタ書いてると訳判らなくなった
290:デフォルトの名無しさん
21/01/29 16:56:37.48 RxAp4EkX.net
>>281
3値のbooleanを作って何するの?
boolへのポインタにしてtrue / false / nullptr の3値でなんとかならんか?
291:デフォルトの名無しさん
21/01/29 17:20:59.69 ADFs+h5F.net
boostにtriboolってのがあるな
292:はちみつ餃子
21/01/29 17:23:22.91 t7wU8l8M.net
>>281
仮に真偽値型を継承可能であったとして、三値型が真偽値型を継承するのはおかしいだろう。
場合によって柔軟な判断が必要な場合はあるものの、
継承は is-a 関係を表したいときに限ったほうがよろしいというのが一般的な設計原則だと思うが。
293:デフォルトの名無しさん
21/01/29 17:25:47.23 GtDK4kd8.net
nullableか、DBのフィールド値?
294:デフォルトの名無しさん
21/01/29 18:57:54.24 ZIYbfTXe.net
はちみつ餃子「スタックトレースできないならデバッガ当てればいいじゃない」
295:デフォルトの名無しさん
21/01/29 19:41:08.91 rAmh2V0K.net
典型的な円楕円問題だな
296:デフォルトの名無しさん
21/01/29 19:56:26.71 ZIYbfTXe.net
テンプレートを使えば、クラス継承に依存しない記述が可能。
iostreamが黒歴史扱いである現実を踏まえての話。
297:デフォルトの名無しさん
21/01/29 21:24:08.77 WFMo+mcm.net
とりあえずiostream批判しとけば訳知り顔ができた気に浸れる浅はかなやつ
298:デフォルトの名無しさん
21/01/29 21:35:39.96 nnAlz0gZ.net
c++ニワカあるあるだよなw
iostreamとりあえず批判奴w
299:デフォルトの名無しさん
21/01/29 21:39:11.47 ZIYbfTXe.net
iostreamは使いもしないメンバ変数を継承することを強要される悪い手本でしょ。
300:デフォルトの名無しさん
21/01/29 22:16:38.63 WFMo+mcm.net
何も説得力を示さずに突然「悪い」と言い出す
301:デフォルトの名無しさん
21/01/30 01:56:51.26 SJAC6oP5.net
iostreamはクソなのは正解だが別に批判するようなことでもない
なぜなら使わなければいいだけの話だからだ
302:デフォルトの名無しさん
21/01/30 02:06:50.03 OHt9F1SU.net
無理にクラス継承を使わずオーバーライド関数とそれを使うテンプレート関数を充実させたほうが幸せになれる。
303:デフォルトの名無しさん
21/01/30 02:41:04.49 PJvUkb6d.net
別に無理して継承を使っているわけではない
どっかの馬の骨が気に入らんからといって
あれを使うなこれを使うなと言われるほうが無理そのものだ
304:デフォルトの名無しさん
21/01/30 02:53:37.72 OHt9F1SU.net
例えば、ファイルに書き込む処理があったとする。
ファイルハンドルとして有名な型としては、int型、FILE*型、iostream型、Win32APIのHANDLE型などがあげられる。
これらを派生クラスに閉じ込めて抽象化するよりも、関数名が同じになるオーバーライド関数を作ってテンプレート関数から呼んだ方がはるかに楽。
int WriteBuffer(int fp, const char* buffer);
int WriteBuffer(FILE* fp, const char* buffer);
int WriteBuffer(ostream& fp, const char* buffer);
int WriteBuffer(HANDLE fp, const char* buffer);
template<typename FILE_OBJECT>
void WriteContent(FILE_OBJECT o)
{
WriteBuffer(o, "write test1");
WriteBuffer(o, "write test2");
}
305:デフォルトの名無しさん
21/01/30 03:53:39.52 ULcRPxme.net
ドヤってるところすまんがそれオーバーライドじゃない
306:デフォルトの名無しさん
21/01/30 04:01:05.04 PJvUkb6d.net
プゲラ
307:デフォルトの名無しさん
21/01/30 05:45:11.84 SLqQC90z.net
フリー関数とクラスメンバでは、インテリセンスが効くか効かないかの違いもある。
308:デフォルトの名無しさん
21/01/30 05:52:17.44 OHt9F1SU.net
そんなあなたに名前空間
309:デフォルトの名無しさん
21/01/30 06:06:53.60 SLqQC90z.net
クラスの場合、名前空間を書かなくても、インテリセンスが効く。
310:デフォルトの名無しさん
21/01/30 06:47:43.00 budoESfZ.net
コンストラクタの初期化リストで
class A{
int x;
public:
A(int x) : x(x) {}
};
みたいにしたとき、ちゃんとメンバのxがコンストラクタの引数のxで初期化されますよね?
メンバの x と同名の引数の x が同一のスコープに同居しているようで紛らわしいかなと思ったのですが、こういう書き方を避ける慣習はありますか
311:デフォルトの名無しさん
21/01/30 07:04:07.72 ULcRPxme.net
自分は普通にその書き方してる
避ける人も居るっぽいけど好きなようにすればいい
312:デフォルトの名無しさん
21/01/30 09:09:49.20 PHKUCpSE.net
iostreamマンセーバカってのは型安全ならどんな仕様でも良いと思ってるカスが多いからな。
型安全は評価する一項目に過ぎないってのに。
313:デフォルトの名無しさん
21/01/30 09:29:38.23 vDjChjwr.net
iostreamは整形のための情報をわざわざ状態として持たされるのがクソ
当時は状態が邪悪だっていう考え方が一般的じゃなかったからしょうがないけど
314:デフォルトの名無しさん
21/01/30 09:38:20.91 2pTx0la6.net
でも状態もってなかったら記述が煩雑になりすぎない?
HTMLのマークアップとまでは言わんまでも
315:デフォルトの名無しさん
21/01/30 09:59:20.80 OHt9F1SU.net
整形設定を記憶する変数インスタンスをiostreamインスタンスと分離すべきって話でしょ。
必要に応じて差し替えできるように参照渡しするか、逆にiostreamを参照渡しするとか色々やれたはず。
316:デフォルトの名無しさん
21/01/30 10:06:40.70 OHt9F1SU.net
というか他のオブジェクト指向言語だと整形情報がFormatterクラスとかに分離されているのが普通だし。
317:デフォルトの名無しさん
21/01/30 10:32:05.24 PJvUkb6d.net
FORTRANのFORMAT文が好きな人をどうこうしようとは思わない
318:デフォルトの名無しさん
21/01/30 10:40:52.47 hVJYorL3.net
初歩的な質問なのですが、stringクラスの内部バッファはデストラクタで破棄されるため自分では一切管理しなくていいという認識で良いのでしょうか?
319:デフォルトの名無しさん
21/01/30 11:17:24.76 SLqQC90z.net
アロケータによるけど、普通は管理しなくて良いのでは?
320:デフォルトの名無しさん
21/01/30 12:47:13.80 EWZvTk3z.net
>>308
状態持ってても無駄に煩雑(複雑ではない)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
286日前に更新/256 KB
担当:undef