C++相談室 part126 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/08/13(土) 11:24:45.65ID:NPYsKJkE!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part125
http://echo.2ch.net/test/read.cgi/tech/1463761261/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1469177649/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
0153デフォルトの名無しさん
2016/08/26(金) 01:02:45.66ID:s3V0ZpLS0154デフォルトの名無しさん
2016/08/26(金) 02:10:25.32ID:jGd0g2RH0155デフォルトの名無しさん
2016/08/26(金) 02:40:37.07ID:mRE0T9bN盲目って怖い。
0156デフォルトの名無しさん
2016/08/26(金) 06:15:21.48ID:9s6WK35Lそんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?
0157デフォルトの名無しさん
2016/08/26(金) 06:18:57.25ID:zQpNEvET0158デフォルトの名無しさん
2016/08/26(金) 08:41:47.22ID:G0uj5hQBあたかも自分は知ってるって感じのものの言い方だなw
0159デフォルトの名無しさん
2016/08/26(金) 08:51:08.73ID:Xz0onrQ70160デフォルトの名無しさん
2016/08/26(金) 08:52:16.33ID:zYo2bKWf良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。
0161デフォルトの名無しさん
2016/08/26(金) 09:42:17.11ID:3Yp6hByU0162デフォルトの名無しさん
2016/08/26(金) 09:44:55.75ID:ZYJ50bjn0163デフォルトの名無しさん
2016/08/26(金) 09:54:56.48ID:+34Dv1b8「誰だよこれやったのは?」って言いたくなる
0164デフォルトの名無しさん
2016/08/26(金) 09:57:17.75ID:G0uj5hQB遅いのにあえてSTLを使う理由がわからん
0165デフォルトの名無しさん
2016/08/26(金) 09:58:29.62ID:3eEs1ucA0166デフォルトの名無しさん
2016/08/26(金) 10:00:15.98ID:3eEs1ucA0167デフォルトの名無しさん
2016/08/26(金) 10:01:25.74ID:3Yp6hByU0168デフォルトの名無しさん
2016/08/26(金) 10:11:56.38ID:ZYJ50bjn0169デフォルトの名無しさん
2016/08/26(金) 10:14:12.77ID:ZYJ50bjnまあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。
0170デフォルトの名無しさん
2016/08/26(金) 10:16:18.07ID:ZYJ50bjnあれならprintf使うのも仕方ない…
0171デフォルトの名無しさん
2016/08/26(金) 10:22:03.58ID:JmjWOqaY0172デフォルトの名無しさん
2016/08/26(金) 11:08:04.55ID:R92D0kaL0173デフォルトの名無しさん
2016/08/26(金) 11:12:41.32ID:mRE0T9bN0174デフォルトの名無しさん
2016/08/26(金) 12:40:42.69ID:3eEs1ucAモウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ
0175デフォルトの名無しさん
2016/08/26(金) 12:59:54.61ID:3Yp6hByU「侮辱的だ」と繰り返すばかり
0176デフォルトの名無しさん
2016/08/26(金) 13:16:58.62ID:R92D0kaLただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない
0177デフォルトの名無しさん
2016/08/26(金) 13:22:39.50ID:FOeYYSc0iostreamってstd::size_tを流し込めること保証されてたっけ
0178デフォルトの名無しさん
2016/08/26(金) 13:28:03.42ID:XS8ZF2FOprintf("%02x", 'A');
0179デフォルトの名無しさん
2016/08/26(金) 18:00:13.51ID:ZiaxvSyEこれわかる人いる?
deleteしたポインタにnullいれてないとおもったんだけど、それではないらしい…
0180デフォルトの名無しさん
2016/08/26(金) 18:10:38.59ID:PiJ4eTCv0181デフォルトの名無しさん
2016/08/26(金) 18:21:32.60ID:RLEpnGOrこんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし
0182デフォルトの名無しさん
2016/08/26(金) 18:23:08.82ID:RLEpnGOrマルチスレッド環境なら話にならないコードだし
0183デフォルトの名無しさん
2016/08/26(金) 18:26:56.70ID:3Yp6hByU0184デフォルトの名無しさん
2016/08/26(金) 18:35:20.55ID:RLEpnGOrViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする
0185デフォルトの名無しさん
2016/08/26(金) 18:36:33.86ID:ZiaxvSyE腑に落ちないw
0186デフォルトの名無しさん
2016/08/26(金) 18:52:19.14ID:wMnlcyg3>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ
0187デフォルトの名無しさん
2016/08/26(金) 20:37:16.13ID:dDBcLzC2これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。
0188デフォルトの名無しさん
2016/08/26(金) 20:45:01.75ID:Xz0onrQ7これくらいなら数分で書き直せるだろ
0189デフォルトの名無しさん
2016/08/26(金) 23:13:22.52ID:mRE0T9bN描画完了通知がNullチェックしてない??
>>187
現在策定中。
0190デフォルトの名無しさん
2016/08/27(土) 08:43:16.25ID:SmFG8gRKス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
0191デフォルトの名無しさん
2016/08/27(土) 12:49:21.98ID:06SnK2FSデストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ
0192デフォルトの名無しさん
2016/08/27(土) 13:15:37.85ID:s3YfawhT0193デフォルトの名無しさん
2016/08/27(土) 21:26:23.95ID:mslVqKaF0194デフォルトの名無しさん
2016/08/27(土) 22:04:43.54ID:sEFObQolソースは?
0195デフォルトの名無しさん
2016/08/27(土) 22:19:45.68ID:nxWT+PHC0196デフォルトの名無しさん
2016/08/27(土) 22:42:36.92ID:OFUg9SIZ0197デフォルトの名無しさん
2016/08/28(日) 01:03:52.09ID:IZ16EciYhttps://cpplover.blogspot.jp/
上経由で知ったが、
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0257r1.pdf
これだと思う。
0198デフォルトの名無しさん
2016/08/28(日) 01:09:59.02ID:3Myecdh+assertならわかるんだけどね
0199デフォルトの名無しさん
2016/08/28(日) 01:19:06.19ID:jX9FVgVh0200デフォルトの名無しさん
2016/08/28(日) 01:37:02.68ID:qNvxLYrv別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。
問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。
0201デフォルトの名無しさん
2016/08/28(日) 01:39:40.85ID:IZ16EciY0202デフォルトの名無しさん
2016/08/28(日) 01:39:43.61ID:60yVMOKIあの超絶クソコードの中では一番どうでもいい点だな
0203デフォルトの名無しさん
2016/08/28(日) 01:41:06.73ID:qNvxLYrvお前ら学校のテストの問題とかでもケチつけてたタイプだろ?w
0204デフォルトの名無しさん
2016/08/28(日) 01:45:52.06ID:7bU6M/B0デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?
0205デフォルトの名無しさん
2016/08/28(日) 01:50:09.68ID:qNvxLYrvデストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。
0206デフォルトの名無しさん
2016/08/28(日) 01:52:56.61ID:60yVMOKI甘えてんじゃねーよこのウンコ量産野郎
0207デフォルトの名無しさん
2016/08/28(日) 01:53:52.21ID:7bU6M/B0なるほど
この問題の場合はそうですね
0208デフォルトの名無しさん
2016/08/28(日) 01:54:04.96ID:60yVMOKIバカですか?
0209デフォルトの名無しさん
2016/08/28(日) 01:54:21.49ID:lPJVAstL別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?
0210デフォルトの名無しさん
2016/08/28(日) 01:55:42.67ID:60yVMOKInullチェックが役に立つとかどういう頭してんだよ
0211デフォルトの名無しさん
2016/08/28(日) 01:55:50.77ID:qNvxLYrvごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。
0212デフォルトの名無しさん
2016/08/28(日) 01:56:03.58ID:Ux2eHzia描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理
0213デフォルトの名無しさん
2016/08/28(日) 02:00:10.83ID:qNvxLYrvもちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。
0214デフォルトの名無しさん
2016/08/28(日) 02:01:04.63ID:jX9FVgVh0215デフォルトの名無しさん
2016/08/28(日) 02:01:08.18ID:60yVMOKIあの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし
0216デフォルトの名無しさん
2016/08/28(日) 02:02:18.11ID:lPJVAstLあ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。
コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。
0217デフォルトの名無しさん
2016/08/28(日) 02:04:40.29ID:qNvxLYrv>>211
0218デフォルトの名無しさん
2016/08/28(日) 02:06:59.88ID:jX9FVgVhやっぱり口だけか
他のフォーラムじゃあり得ないな
0219デフォルトの名無しさん
2016/08/28(日) 02:08:06.28ID:a4amypBOnullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど
0220デフォルトの名無しさん
2016/08/28(日) 02:09:26.72ID:7bU6M/B0外でdeleteされても大丈夫と理解しました
でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね
0221デフォルトの名無しさん
2016/08/28(日) 02:27:55.51ID:lPJVAstL大丈夫じゃないから、騙されないで。
0222デフォルトの名無しさん
2016/08/28(日) 02:50:59.20ID:a4amypBO片方にnullptr代入したってもう片方は変わらない
これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど
0223デフォルトの名無しさん
2016/08/28(日) 02:56:39.81ID:jX9FVgVh正しい使い方をしない方に全ての責任があるから考慮する必要性がない
0224デフォルトの名無しさん
2016/08/28(日) 03:50:58.71ID:VK4fyJjMそれより例外安全が考慮されていないのが気になって仕方ない
0225デフォルトの名無しさん
2016/08/28(日) 03:54:18.30ID:d5NA/60Hバグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな
0226デフォルトの名無しさん
2016/08/28(日) 04:21:07.87ID:hSYh5tBq簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん?
簡略化する前ですら冗長なのに
0227デフォルトの名無しさん
2016/08/28(日) 06:24:16.40ID:a4amypBO0228デフォルトの名無しさん
2016/08/28(日) 06:32:42.06ID:VK4fyJjM>>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう
0229デフォルトの名無しさん
2016/08/28(日) 07:20:04.01ID:ERRoyT16論文見たら全てが策定中になっちゃうのかよ
おめでてーな
0230デフォルトの名無しさん
2016/08/28(日) 07:40:09.72ID:hSYh5tBqデストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。
0231デフォルトの名無しさん
2016/08/28(日) 07:47:04.27ID:ERRoyT160232デフォルトの名無しさん
2016/08/28(日) 08:20:20.55ID:lCXt6uga>>183
0233デフォルトの名無しさん
2016/08/28(日) 21:30:38.37ID:NaGSjNyA実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?
0234デフォルトの名無しさん
2016/08/28(日) 21:34:04.63ID:NaGSjNyAすみません忘れて
0235デフォルトの名無しさん
2016/08/30(火) 08:09:06.98ID:ftymYuoJf ( { p1, p2, p3 } ) // explicitだとエラー
0236デフォルトの名無しさん
2016/08/30(火) 15:46:08.79ID:0Xvfpf4xもともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。
0237デフォルトの名無しさん
2016/08/30(火) 19:30:10.07ID:0Xvfpf4x1価の陰イオンとなる第17族元素である。
0238デフォルトの名無しさん
2016/08/30(火) 23:18:33.93ID:lqTGpbVFC#みたいなプロパティは欲しいけど
0239デフォルトの名無しさん
2016/08/30(火) 23:37:14.11ID:ocxqe0WR0240デフォルトの名無しさん
2016/08/30(火) 23:42:07.71ID:xMG6EfaL0241デフォルトの名無しさん
2016/08/31(水) 00:35:52.45ID:ityOLHmmプロパティの簡潔さには程遠いな
0242デフォルトの名無しさん
2016/08/31(水) 00:39:34.42ID:yHeo0PbI0243デフォルトの名無しさん
2016/08/31(水) 01:23:54.91ID:/ANAyxIkきっちり書くと更に手間かかるな
https://ideone.com/HVRzE1
C#だとこう書ける
https://ideone.com/idjL0A
0244デフォルトの名無しさん
2016/08/31(水) 01:38:11.88ID:1fkGDbVO> は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw
0245デフォルトの名無しさん
2016/08/31(水) 01:57:19.27ID:6ukDv4b6ダッサ
お前C#のプロパティの便利さ全然理解してないね
0246デフォルトの名無しさん
2016/08/31(水) 01:59:51.36ID:j3ifnVdnこんな書き方で満足する人いるの?
0247デフォルトの名無しさん
2016/08/31(水) 02:07:02.38ID:BDrnIBJY理解している気配は全く無いな
0248デフォルトの名無しさん
2016/08/31(水) 02:09:05.10ID:BDrnIBJY0249デフォルトの名無しさん
2016/08/31(水) 02:21:29.37ID:/ANAyxIkアスペ
0250デフォルトの名無しさん
2016/08/31(水) 02:44:37.65ID:AgvBQXnk0251デフォルトの名無しさん
2016/08/31(水) 09:31:40.10ID:+TzIiYAW0252デフォルトの名無しさん
2016/08/31(水) 09:57:43.27ID:WLaQrr/5なんじゃこりゃ。全然違うじゃん。
これをC#のプロパティと思ってるの?
もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド)
で例示してくれよ。
■ このスレッドは過去ログ倉庫に格納されています