[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/10 14:57 / Filesize : 234 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part126



1 名前:デフォルトの名無しさん mailto:sage [2016/08/13(土) 11:24:45.65 ID:NPYsKJkE.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part125
echo.2ch.net/test/read.cgi/tech/1463761261/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
echo.2ch.net/test/read.cgi/tech/1469177649/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)

129 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 17:40:44.14 ID:fxoWtzfY.net]
ええ?
じゃあ不勉強なもんでもうひとつ聞きたいんだけれど
class Tsushin
{
private:
boost::asio::ip::tcp::socket *sock;
}
っていうソケットを持ったクラスを作るとして、これをどうやってポインタを使わずに実装できるん?
boost::asio::io_serviceのインスタンスが無いとsocketのインスタンス作れないから、これ以外の方法が分からないんだけれども

130 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 17:55:50.29 ID:fxoWtzfY.net]
あっ自己解決しました
メンバイニシャライザっていうんかc++でこの書き方初めて知った

131 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:43:09.16 ID:cZABj4Tc.net]
一つ前のレスも読めないと

132 名前:
どうしてこのスレはこうも文盲が多いのか
[]
[ここ壊れてます]

133 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 20:30:02.71 ID:aAEQc8xp.net]
メンバのクラスはコンストラクタが動かないからポインタで持たせるといいよと言ってる奴は結構いるから困る

134 名前:デフォルトの名無しさん [2016/08/25(木) 20:45:21.63 ID:HcIHj1Mt.net]
>>129
そんなやつ見たことねー

135 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 20:54:49.89 ID:dURn6wW4.net]
そんな奴おらへんやろ〜って漫才師、こだまひびきって言うのか。
今ググって分かった

136 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:19:05.54 ID:aAEQc8xp.net]
>>130
ガチだぞ
うちの会社のソースを見たらみんなポインタで持ってて、上司に何でこんなことをしているのかと聞いたらそうじゃないと使えないからとか返ってきた
しかも暗黙のコーディング規約になっているらしく初期化リストを使おうとしたら変な文法使うのやめてとか言い始めた

137 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:41:30.58 ID:Auzyp/YA.net]
c++書いちゃいけないレベルの奴が無理して書いてると一瞬でコードが負債化するな
こんな職場少なくないんだろうな
おとなしくゆとり向けのjavaかc#にしときゃいいのに



138 名前:デフォルトの名無しさん [2016/08/25(木) 21:49:20.87 ID:gyF7bTdS.net]
>>132
おまおれ・・・つーか、もしかして知り合い?

139 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:50:34.75 ID:rkw+skCq.net]
怖いな
もちろんスマポも禁止でデストラクタでデリートしているのだろうな。

140 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 22:02:34.44 ID:sWxqL1bB.net]
コンストラクタで代入しているのはまだカワイイもんで、K&RのCとC++の区別すらついてないのがゴロゴロいるよ

固定長配列しか使えない
構造体、配列をmemsetで初期化
algorithmヘッダの関数を知らない
全部forでぐーるぐる
Cスタイルのキャストしか知らない
引数のconst参照渡しを知らない
コードにconstが一切出てこない
変数は関数の頭でまとめて宣言

141 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:01:19.36 ID:aAEQc8xp.net]
STL(標準ライブラリ全てのこと)は使わないでねと言われる、しかしMFCは使う
1人だけVS6.0を使っている
新しいバージョン使いましょうと言ったら、内部で新しいライブラリが読み込まれているかもしれないからバグが怖いと言って拒否される
君の書いたコードがコンパイルできないんだけどと言うから見に行ったら、古い仕様でfor文内の変数宣言が重複宣言扱いになってるせいだったが、これおかしくない?変数はfor文の外で宣言しないとダメだよとアドバイスされた
Gitは使いたくないらしく共有フォルダにzipで置いておかないと成果物として認められない
その処理は標準ライブラリで簡単にできると言っても使わなくてもできるでしょとと言って自力でやろうとする
GUIのクラスに様々な処理をべったりと書く
それぞれを部品と見なしてもっと抽象化するように書くと良いですよと説得しようとしたら理屈はいいからと言って一蹴される
C#に移行する案が出ると俺に勉強しろというのかと言って腹を立てる

142 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:08:56.49 ID:bqd04CsU.net]
stlおせーからな
そうりゃそうだろ
内もつかわねーよ

143 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:13:44.51 ID:i0nCiEhg.net]
え?

144 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:14:18.40 ID:i0nCiEhg.net]
凡人がSTLの開発効率と速度を超えるのは容易ではないと思うんだが。

145 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:30:57.44 ID:sWxqL1bB.net]
「STLが遅い」という人はほとんどの場合
「デバッグビルド時になんか知らんけどvectorが生配列に比べて遅い」
という意味でおっしゃっています

146 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:32:50.42 ID:aAEQc8xp.net]
>boostなんて使う理由がわからん
>stlおせーからな
自信過剰なのか使い方がわからないのか

147 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:39:01.25 ID:bqd04CsU.net]
>>140
STLのソースみてみろよ
アルゴリズムなんて偉そうに言ってるわりには単にループしてるだけじゃんw



148 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:43:44.66 ID:i0nCiEhg.net]
>>143
ループがアルゴリズムじゃなかったらなんなんだ?
STLのすごいところは手続きの一本化だと思ってるが。

149 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:00:25.29 ID:5SQKnTXv.net]
STLってがっかりしているポーズに見える

150 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:00:26.86 ID:zzW4nWtw.net]
テクい実装をすることや複雑な問題を解くことだけがすごいことらしい

151 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:14:11.18 ID:XypgEzC7.net]
count_if
なんてループで回して、比較してるだけじゃん
数十秒でかける処理をわけのわからんライブラリを使う理由がわからん

152 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:16:33.63 ID:mRE0T9bN.net]
>>147
訳が分かってないだけだ。
共通理解というものを重視しないんだなぁ。いやすぎ。

153 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:21:54.93 ID:0ZeIadI8.net]
>>147
標準ライブラリをわけのわからん呼ばわりするのは流石に笑う

printfはわけがわかるの?
atoiは?

標準ライブラリの使い方すら知らない人間が書いた関数はわけがわからんから使いたくないなぁ

154 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:21:58.15 ID:zzW4nWtw.net]
C++が使えるというのは標準ライブラリも知っているということでもあるからな
誰が見ても一行で何をしているか分かるということが重要だ

155 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:25:24.95 ID:XypgEzC7.net]
おまえらわけわか

156 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:29:45.40 ID:mRE0T9bN.net]
>>151
こっちから見ればなんで素養のわからんあんたのコードつかわにゃならんのだ。ってこと。
関数名見れば機能はわかるということを破棄してるあんたと仕事したくない。
共通理解って言葉が理解できないって恐ろしいことだ。

157 名前:デフォルトの名無しさん [2016/08/26(金) 01:02:45.66 ID:s3V0ZpLS.net]
無駄に長くて読みにくいコード書いてそう



158 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:10:25.32 ID:jGd0g2RH.net]
コピペしまくりのコードとかまとめろってかんじ

159 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:40:37.07 ID:mRE0T9bN.net]
多分、>>152みて職場で無関係な奴に当たり散らすんだぜ。
盲目って怖い。

160 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 06:15:21.48 ID:9s6WK35L.net]
>>129
そんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?

161 名前:デフォルトの名無しさん [2016/08/26(金) 06:18:57.25 ID:zQpNEvET.net]
age

162 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:41:47.22 ID:G0uj5hQB.net]
>>156
あたかも自分は知ってるって感じのものの言い方だなw

163 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:51:08.73 ID:Xz0onrQ7.net]
クイズ好きだね

164 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:52:16.33 ID:zYo2bKWf.net]
まあゴテゴテに凝ったフレームを使うより単純な自分実装のが
良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。

165 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:42:17.11 ID:3Yp6hByU.net]
std::使っておけばドキュメンテーション楽じゃん、とは思わないのかね?

166 名前:デフォルトの名無しさん [2016/08/26(金) 09:44:55.75 ID:ZYJ50bjn.net]
標準ライブラリは巨大ハンマーと言うよりは、ネジとか家庭用電源差込口とかに近い、まさに規格化された共通部品じゃないかと思うんだけどな。

167 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:54:56.48 ID:+34Dv1b8.net]
自分実装のはずなのに、半年1年後
「誰だよこれやったのは?」って言いたくなる



168 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:57:17.75 ID:G0uj5hQB.net]
速いならいいがな
遅いのにあえてSTLを使う理由がわからん

169 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:58:29.62 ID:3eEs1ucA.net]
iostreamみたいなウンコ大作がネジとか何の冗談

170 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:00:15.98 ID:3eEs1ucA.net]
ああ、screwedにかけたのかw

171 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:01:25.74 ID:3Yp6hByU.net]
速いのがいいならsproutでも使えば

172 名前:デフォルトの名無しさん [2016/08/26(金) 10:11:56.38 ID:ZYJ50bjn.net]
別に標準ライブラリと同じインタフェースにしといてくれれば、あとは勝手にしてくれていいんやで。

173 名前:デフォルトの名無しさん [2016/08/26(金) 10:14:12.77 ID:ZYJ50bjn.net]
あと、標準ライブラリといったらiostremって発想もどうかと思う。
まあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。

174 名前:デフォルトの名無しさん [2016/08/26(金) 10:16:18.07 ID:ZYJ50bjn.net]
iostreamは確かに使いにくい。
あれならprintf使うのも仕方ない…

175 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:22:03.58 ID:JmjWOqaY.net]
printf > boost::format >>>>>>超えられない壁>>>>>> iostream

176 名前:デフォルトの名無しさん [2016/08/26(金) 11:08:04.55 ID:R92D0kaL.net]
なぜいつまでたってもフォーマットを指定してstd::stringにするライブラリが標準入りしないのか

177 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 11:12:41.32 ID:mRE0T9bN.net]
putfって止まってるの?



178 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 12:40:42.69 ID:3eEs1ucA.net]
>>172
モウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ

179 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 12:59:54.61 ID:3Yp6hByU.net]
>>174
「侮辱的だ」と繰り返すばかり

180 名前:デフォルトの名無しさん [2016/08/26(金) 13:16:58.62 ID:R92D0kaL.net]
streamの何も考えずガンガン流し込めばいいというスタイルは悪くないと思う
ただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない

181 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 13:22:39.50 ID:FOeYYSc0.net]
何も考えず?
iostreamってstd::size_tを流し込めること保証されてたっけ

182 名前:デフォルトの名無しさん [2016/08/26(金) 13:28:03.42 ID:XS8ZF2FO.net]
std::cout << std::hex << std::setw(2) << std::setfill('0') << int('A');
printf("%02x", 'A');

183 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:00:13.51 ID:ZiaxvSyE.net]
https://t.co/wOBgDeY9iG
これわかる人いる?
deleteしたポインタにnullいれてないとおもったんだけど、それではないらしい…

184 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:10:38.59 ID:PiJ4eTCv.net]
ヌルポチェックの外でメンバ関数呼び出している。

185 名前:デフォルトの名無しさん [2016/08/26(金) 18:21:32.60 ID:RLEpnGOr.net]
>>179
こんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし

186 名前:デフォルトの名無しさん [2016/08/26(金) 18:23:08.82 ID:RLEpnGOr.net]
前提条件が曖昧すぎて問題にすらなっていない
マルチスレッド環境なら話にならないコードだし

187 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:26:56.70 ID:3Yp6hByU.net]
for (auto charactor はfor (auto& charactor でなくていいんだろうか?



188 名前:デフォルトの名無しさん [2016/08/26(金) 18:35:20.55 ID:RLEpnGOr.net]
ViewPortのコンストラクタにnullptrが渡される可能性があるなら
ViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする

189 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:36:33.86 ID:ZiaxvSyE.net]
色々思いつくけど >>180 が当たりっぽい
腑に落ちないw

190 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:52:19.14 ID:wMnlcyg3.net]
rule of three(five)を無視しといてバグとか語るなって感じだが
>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ

191 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 20:37:16.13 ID:dDBcLzC2.net]
>>178
これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。

192 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 20:45:01.75 ID:Xz0onrQ7.net]
参考にしたいからお前らの頭の良い実装を見せてくれ
これくらいなら数分で書き直せるだろ

193 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 23:13:22.52 ID:mRE0T9bN.net]
>>179
描画完了通知がNullチェックしてない??

>>187
現在策定中。

194 名前:デフォルトの名無しさん [2016/08/27(土) 08:43:16.25 ID:SmFG8gRK.net]
      ク    ク || プ  //
      ス  ク ス  | | │ //
       / ス    | | ッ //   ク   ク  ||. プ  //
       /         //   ス ク ス _ | | │ //
         / ̄ ̄\     /  ス   ─ | | ッ //
       /  _ノ  .\     /         //
       |  ( >)(<)       ___
.        |  ⌒(__人__)     ./ ⌒  ⌒\
        |    ` Y⌒l    /  (>) (<)\
.         |    . 人__ ヽ /  ::::::⌒(__人__)⌒ \
        ヽ         }| | |        ` Y⌒ l__   |
         ヽ    ノ、| | \       人_ ヽ /
.         /^l       / /   ,─l       ヽ \

195 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 12:49:21.98 ID:06SnK2FS.net]
>>179
デストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ

196 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 13:15:37.85 ID:s3YfawhT.net]
nullptrだったら描画開始しちゃダメなんじゃないの?

197 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 21:26:23.95 ID:mslVqKaF.net]
null をdelete しても無視されるから無駄って事かな



198 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 22:04:43.54 ID:sEFObQol.net]
>>189
ソースは?

199 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 22:19:45.68 ID:nxWT+PHC.net]
あってもなくても動作に影響しないものがあってもそこはバグとはいわないだろう

200 名前:デフォルトの名無しさん [2016/08/27(土) 22:42:36.92 ID:OFUg9SIZ.net]
バグとは言われないがゴミコードとは言われるだろう。

201 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:03:52.09 ID:IZ16EciY.net]
>>194
https://cpplover.blogspot.jp/
上経由で知ったが、
www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0257r1.pdf
これだと思う。

202 名前:デフォルトの名無しさん [2016/08/28(日) 01:09:59.02 ID:3Myecdh+.net]
delete前のnullptrチェックなあ
assertならわかるんだけどね

203 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:19:06.19 ID:jX9FVgVh.net]
お前らが理想のコードに書き直してくれるのを待ってるんだが

204 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:37:02.68 ID:qNvxLYrv.net]
お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。

問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。

205 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:39:40.85 ID:IZ16EciY.net]
バグは1つではない説。

206 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:39:43.61 ID:60yVMOKI.net]
>そのコピーに対して操作してることになる。
あの超絶クソコードの中では一番どうでもいい点だな

207 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:41:06.73 ID:qNvxLYrv.net]
他のはバグの温床にはなりえても、あのコードだけではバグとは言えない。
お前ら学校のテストの問題とかでもケチつけてたタイプだろ?w



208 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:45:52.06 ID:7bU6M/B0.net]
>>200
デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?

209 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:50:09.68 ID:qNvxLYrv.net]
>>204
デストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。

210 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:52:56.61 ID:60yVMOKI.net]
>>199
甘えてんじゃねーよこのウンコ量産野郎

211 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:53:52.21 ID:7bU6M/B0.net]
>>205
なるほど
この問題の場合はそうですね

212 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:54:04.96 ID:60yVMOKI.net]
>>205
バカですか?

213 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:54:21.49 ID:lPJVAstL.net]
>>205
別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?

214 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:55:42.67 ID:60yVMOKI.net]
デストラクタ以外のどこか別の場所でdeleteされてたなんてキチガイじみた状況に
nullチェックが役に立つとかどういう頭してんだよ

215 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:55:50.77 ID:qNvxLYrv.net]
>>209
ごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。

216 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:56:03.58 ID:Ux2eHzia.net]
>>200
描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理

217 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:00:10.83 ID:qNvxLYrv.net]
>>212
もちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。



218 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:01:04.63 ID:jX9FVgVh.net]
デストラクタで解放することが分かってるのに他の場所で解放するのはクラスの使用者の責任ではないのか

219 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:01:08.18 ID:60yVMOKI.net]
こういうバカが次から次に湧いてくるからアプリケーション層ではnewもdeleteも書くなって言ってるの
あの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし

220 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:02:18.11 ID:lPJVAstL.net]
>>205
あ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。

コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。

221 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:04:40.29 ID:qNvxLYrv.net]
>>216
>>211

222 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:06:59.88 ID:jX9FVgVh.net]
ここまで1行も無し
やっぱり口だけか
他のフォーラムじゃあり得ないな

223 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:08:06.28 ID:a4amypBO.net]
最初からnullptrで渡されることがあるんじゃないの
nullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど

224 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:09:26.72 ID:7bU6M/B0.net]
デストラクタ内でdelete&nullptr代入しておけばデストラクタ呼び出し後に
外でdeleteされても大丈夫と理解しました

でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね

225 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:27:55.51 ID:lPJVAstL.net]
>>220
大丈夫じゃないから、騙されないで。

226 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:50:59.20 ID:a4amypBO.net]
ポインタがコピーされてるから内部と外部じゃ別物だよ
片方にnullptr代入したってもう片方は変わらない

これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど

227 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:56:39.81 ID:jX9FVgVh.net]
スマポだって外部でdeleteされることなんか考慮してない
正しい使い方をしない方に全ての責任があるから考慮する必要性がない



228 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 03:50:58.71 ID:VK4fyJjM.net]
まさかポインターのコピーがわかってない奴がいようとは驚きだ
それより例外安全が考慮されていないのが気になって仕方ない

229 名前:デフォルトの名無しさん [2016/08/28(日) 03:54:18.30 ID:d5NA/60H.net]
また無意味な部分にツッコミを入れてるのか
バグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef