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/ (日本語)
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] また無意味な部分にツッコミを入れてるのか バグを見つける為の例題なのであって 完全なコードを示してるわけではないってのが理解できないのかな
230 名前:デフォルトの名無しさん [2016/08/28(日) 04:21:07.87 ID:hSYh5tBq.net] >>225 簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん? 簡略化する前ですら冗長なのに
231 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:24:16.40 ID:a4amypBO.net] 速攻指摘されてるじゃん
232 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:32:42.06 ID:VK4fyJjM.net] >>226 >>225 の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから 本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう
233 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:20:04.01 ID:ERRoyT16.net] >>197 論文見たら全てが策定中になっちゃうのかよ おめでてーな
234 名前:デフォルトの名無しさん [2016/08/28(日) 07:40:09.72 ID:hSYh5tBq.net] >>228 デストラクタでdeleteする前にviewObjに対してなにかしてるって事? もしそうならもっと糞コードやん。 viewObj自身で片付けろよと。
235 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:47:04.27 ID:ERRoyT16.net] ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw
236 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 08:20:20.55 ID:lCXt6uga.net] >>200 >>183
237 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:30:38.37 ID:NaGSjNyA.net] 質問 実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?
238 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:34:04.63 ID:NaGSjNyA.net] 自己解決しました。 すみません忘れて
239 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 08:09:06.98 ID:ftymYuoJ.net] ハゲの好きそうなコード f ( { p1, p2, p3 } ) // explicitだとエラー
240 名前:デフォルトの名無しさん [2016/08/30(火) 15:46:08.79 ID:0Xvfpf4x.net] ハゲの嫌いなことは、言語に機能を追加すること。 もともとC with classesとか始めた張本人がハゲなんだけど、 まあ今のC++を見てると気持ちはわかるね。
241 名前:デフォルトの名無しさん [2016/08/30(火) 19:30:10.07 ID:0Xvfpf4x.net] ハゲの論理を、ハゲロンという。 1価の陰イオンとなる第17族元素である。
242 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:18:33.93 ID:lqTGpbVF.net] もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか? C#みたいなプロパティは欲しいけど
243 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:37:14.11 ID:ocxqe0WR.net] そんなんtemplateで書けばいいじゃん
244 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:42:07.71 ID:xMG6EfaL.net] は?テンプレートでC#のようなプロパティどうやって実現するんだ?
245 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:35:52.45 ID:ityOLHmm.net] それっぽいのは出来なくはなさそうだけど プロパティの簡潔さには程遠いな
246 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:39:34.42 ID:yHeo0PbI.net] C#を知らんやつにも分かるように説明汁
247 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:23:54.91 ID:/ANAyxIk.net] こんな感じか? きっちり書くと更に手間かかるな https://ideone.com/HVRzE1 C#だとこう書ける https://ideone.com/idjL0A
248 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:38:11.88 ID:1fkGDbVO.net] >>240 > は?テンプレートでC#のようなプロパティどうやって実現するんだ? 今年一の名言だなw
249 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:57:19.27 ID:6ukDv4b6.net] >>243 ダッサ お前C#のプロパティの便利さ全然理解してないね
250 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:59:51.36 ID:j3ifnVdn.net] 何が名言なのかさっぱり分からんのだが こんな書き方で満足する人いるの?
251 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:07:02.38 ID:BDrnIBJY.net] C++のstd::vector<bool>がクソ扱いされていることを 理解している気配は全く無いな
252 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:09:05.10 ID:BDrnIBJY.net] むしろ今年一の名言は>>211
253 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:21:29.37 ID:/ANAyxIk.net] >>245 アスペ
254 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:44:37.65 ID:AgvBQXnk.net] プロパティって最初に採用されたのはVBっていうかCOMだよね確か。
255 名前:デフォルトの名無しさん [2016/08/31(水) 09:31:40.10 ID:+TzIiYAW.net] プロパティも欲しいけど簡単に使える部分配列も欲しいな
256 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 09:57:4
] [ここ壊れてます]
257 名前:3.27 ID:WLaQrr/5.net mailto: >>243 なんじゃこりゃ。全然違うじゃん。 これをC#のプロパティと思ってるの? もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド) で例示してくれよ。 [] [ここ壊れてます]
258 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:12.25 ID:WLaQrr/5.net] こういうコードをC#のプロパティのように テンプレートで実装する方法を書けっつってるのに、 なんであんなひねくれた例が出てくるんだよw class employee { public: employee(int id, std::string name); int GetID(); void SetID(int id); std::string GetName(); void SetName(std::string name); private: int id; std::string name; }
259 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:54.93 ID:sRpVtXPN.net] ほならね
260 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:14:08.99 ID:WLaQrr/5.net] 上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。 意味ねーじゃん。
261 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:40:08.79 ID:N4JrJ9XH.net] プロパティやりたいならC++Builder
262 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:12:33.68 ID:utsO37AQ.net] お手本はよ
263 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:18:56.64 ID:N4JrJ9XH.net] こういうコードをC#のプロパティのように テンプレートで実装する方法を書けっつってるのに、 なんであんなひねくれた例が出てくるんだよw class employee { public: employee(int id, std::string name); __property int ID = { read = GetID, write = SetID } ; __property std::string Name = { read = GetName, write = SetName } ; private: int id; std::string name; int GetID(); void SetID(int id); std::string GetName(); void SetName(std::string name); }
264 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:20:17.85 ID:N4JrJ9XH.net] うわw赤の他人のコメントまでコピペしてしもうたw class employee { public: employee(int id, std::string name); __property int ID = { read = GetID, write = SetID } ; __property std::string Name = { read = GetName, write = SetName } ; private: int id; std::string name; int GetID(); void SetID(int id); std::string GetName(); void SetName(std::string name); }
265 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:40:45.52 ID:utsO37AQ.net] 標準で頼む
266 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:53:46.21 ID:N4JrJ9XH.net] 標準じゃないけどめっちゃ便利やよ
267 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 12:18:33.24 ID:XvHw9frf.net] 教えてください。 Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。 問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。 キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。 そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。 よろしくお願いします
268 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 13:33:26.19 ID:6ukDv4b6.net] Qtスレに行ってください echo.2ch.net/test/read.cgi/tech/1438593408/
269 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:02:00.01 ID:XvHw9frf.net] 誘導ありがとうございます。 Qt抜きで、c++的には実現できないのでしょうか?
270 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:22:32.78 ID:mqymnS7Z.net] Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな
271 名前:デフォルトの名無しさん [2016/08/31(水) 14:25:22.52 ID:utsO37AQ.net] とりあえずsystem("magnify");して同じ症状なら別の問題
272 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 16:18:18.52 ID:f/lfR+US.net] プロパティ標準で書いたらこんな感じ? getを使う時c#にはない()がいるけど https://ideone.com/BazQ1D
273 名前:デフォルトの名無しさん [2016/08/31(水) 16:56:40.77 ID:/MnV3wL6.net] リファレンサオブジェクトをpublicデータメンバで持てって?
274 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 17:50:46.05 ID:WLaQrr/5.net] >>267 合格。絶対にこんなコード書かないけど、 プロパティの要件は一応満たしている。
275 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 18:02:51.48 ID:N4JrJ9XH.net] vectorとかの配列リファレンサがこんな形だよな
276 名前:デフォルトの名無しさん [2016/08/31(水) 18:55:44.77 ID:gRHWeOr5.net] ここを見てるとC++のダメさ加減がよくわかる。
277 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:41:02.78 ID:YUscqvM8.net] 不要だからコア言語に追加されなかったんだろう
278 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:06:57.16 ID:XvHw9frf.net] >>266 のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました
279 名前:デフォルトの名無しさん [2016/08/31(水) 20:41:02.91 ID:+TzIiYAW.net] プロパティ不要とか苦行かよ
280 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:43:28.45 ID:YUscqvM8.net] プロパティなんてあってもたいして使わない予感
281 名前:デフォルトの名無しさん [2016/08/31(水) 20:54:10.62 ID:/MnV3wL6.net] 実感じゃねえのかよ
282 名前:デフォルトの名無しさん [2016/08/31(水) 20:57:52.91 ID:ntcwlW+6.net] プロパティ否定してる奴はエアプだってはっきりわかんだね
283 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:00:08.58 ID:NSLbELcw.net] クラス書かないからわかんない。テヘペロ。
284 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:32:42.17 ID:viOT3sew.net] Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔
285 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:48:33.01 ID:MERKTov5.net] C++/CLIは別言語
286 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:59:28.02 ID:/ANAyxIk.net] アクセス制限もいらないからな 余計なことして何が起こっても全て使用者の責任
287 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:34:19.56 ID:xAEFTakh.net] 全部グローバル変数にすると便利だよ
288 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:57:22.63 ID:YUscqvM8.net] プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?
289 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:03:00.58 ID:6ukDv4b6.net] >>283 そうかもね。設計が下手なんじゃないかな。 もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。
290 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:06:47.51 ID:gUL/+EZq.net] は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ? 「C++で標準でできないことは出来る必要がないから、 そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ? それは宗教だ。
291 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:10:36.99 ID:YUscqvM8.net] >>285 俺は良し悪しは言ってないよ
292 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:23:15.94 ID:YUscqvM8.net] まあ外部に 「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」 みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。 でもどちらかというとそういうクラスは少ないような気がしたのさ。
293 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:36:37.26 ID:mzwgRQN4.net] そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。
294 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:45:12.50 ID:YUscqvM8.net] >>288 何が?
295 名前:デフォルトの名無しさん [2016/08/31(水) 23:51:01.09 ID:/MnV3wL6.net] >>287 普通にprivateデータメンバじゃん、それ
296 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:56:32.05 ID:YUscqvM8.net] >>290 いや、それらの属性を持ってること自体を外部に公開してる。 privateメンバだったらそんなことは内部仕様にしか書かないでしょ。
297 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 00:14:02.16 ID:PJEueDDa.net] 簡潔に 「どんな属性を持ってるか自体を隠蔽するのが普通」 って書けばいいじゃん
298 名前:デフォルトの名無しさん [2016/09/01(木) 00:31:43.23 ID:8Xtys+zE.net] プロパティって、何が便利なん? C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。
299 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 04:18:24.20 ID:siIxmZ+U.net] プロパティは classの実装とインターフェースの分離が容易にします プログラムの字面の変更なしで 後から小細工ができます 言語仕様に内包されたパッチ機能?w >>293 十分だと思います 後から改変するとき小細工が出来て便利なのかな?
300 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 06:05:34.36 ID:quvSlm2c.net] いや、setterとgetterがめんどいからプロパティがあるんでしょw
301 名前:デフォルトの名無しさん [2016/09/01(木) 07:26:09.87 ID:8Xtys+zE.net] >>295 手間変わらなくね?
302 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 07:37:27.71 ID:d6w4LGKM.net] >>296 C#のプロパティは超便利で手間が大きく違う 使ってみれば分かるよ いまだにこんな便利なものが実装されていないJavaはゴミ
303 名前:デフォルトの名無しさん [2016/09/01(木) 08:36:37.64 ID:8Xtys+zE.net] >>297 いや、使った事あるんだけど… その上でわからないからトクトクとお願いしてる。
304 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:44:04.42 ID:7t+U5xjY.net] そもそもsetterとgetterが必要なのかって話でしょ
305 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:45:24.36 ID:ZAvvKiiS.net] 手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする
306 名前:デフォルトの名無しさん [2016/09/01(木) 08:51:59.38 ID:8Xtys+zE.net] >>300 ああ、なるほどね。 意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。 言われてみれば当然かも。 あざっす。
307 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:01:16.42 ID:DsNIQM1p.net] 超便利と書くからワケがわからなくなる いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる
308 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:39:25.12 ID:DsNIQM1p.net] 既読性って何だ?w 可読性だったわw
309 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:52:32.53 ID:oseS/uHr.net] 引数0の関数は括弧省略できればいいんじゃないのか
310 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 10:08:05.72 ID:d6w4LGKM.net] 「超便利」が分かって貰えないとか ほんとにC#のプロパティ使ったことあるんですかねえ(笑)
311 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:42:15.33 ID:n+lE1LxE.net] 使えば超便利、だがあまり使わない、って両立するけどな。
312 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:57:18.01 ID:f8G6zOLb.net] listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ 全部メソッドの方が統一感はあると思う。
313 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:08:36.30 ID:n+lE1LxE.net] getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん? 俺は1対5ぐらいだ。 だからあれば便利というのはわかる。
314 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:30:21.99 ID:LcnNSect.net] >>296 手間は結構変わるよ。 まず、getter/setterを普通に定義するのより、 プロパティの方がコード量が単純に減る。 変数名と関数名の一致だとかも考慮しなくていいから、 保守もしやすい。 その上、利用時にはpublicメンバ変数のように使えるから、 呼び出し先のコードもすっきりする。 必須ではないから不要と思うなら使わなければいいけど。 便利機能ってだけだし。
315 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:31:26.62 ID:LcnNSect.net] >>304 それはVBAとかそうだけど、ややこしいからやめてくれw
316 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:46:32.26 ID:d6w4LGKM.net] >>298 単純な話こういうことを言ってるんだけど。。。 JavaやC++の場合 private int x; public getX(){return x;} public setX(int val) {x=val;} C#の場合 public int X {get; set;} 手間は1/3以下になってる ほんとに使ったことあるの?
317 名前:デフォルトの名無しさん [2016/09/01(木) 13:12:08.94 ID:+q6YP6fM.net] あんなのが欲しい、こんなのが欲しいと、 みんな口々に勝手なこと言うのを あれもこれもと言語に取り込む ということをするかしないかというポリシーは 言語が違えば違って当たり前 C#でどうだからC++もどうせよとか C#でどうだからJavaはゴミとか そんなにC#が好きならC#だけ使ってればいい
318 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:23:01.35 ID:d6w4LGKM.net] うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ 高速性が求められる場面ではほぼ唯一の選択肢だし 他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし
319 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:37:36.32 ID:Zz5UEunk.net] public変数とgetter/setter付きのprivate変数って何が違うの?
320 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:52:30.49 ID:d6w4LGKM.net] >>314 get/set時にコードが介入できる
321 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:51:04.12 ID:nGqVI4Wr.net] public変数なんか使ったら、まともにプログラミング出来ない。 これは、あり得ない選択 変数は出来るだけ、狭いスコープに閉じ込めるのが基本
322 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:52:33.38 ID:3wSPfZnR.net] >>314 昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。
323 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 15:42:38.63 ID:n+lE1LxE.net] >>316 上段も下段もそれぞれ正しい
324 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:38:25.17 ID:f8G6zOLb.net] >>314 c++の場合、表記が違うので入れ替えが大変。
325 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:52:35.75 ID:oseS/uHr.net] 直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?
326 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 17:03:57.26 ID:d6w4LGKM.net] >>320 そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある 例えばDataGridViewに内容を表示するときなど
327 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:10:45.91 ID:3cPIMSrP.net] >>314 public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい 単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要 後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある 例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる public変数だったらこれはできないけど、setter経由であればできる 「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね
328 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:27:41.58 ID:zfFV4MMV.net] getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ
329 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:41:33.44 ID:L3a4bYLC.net] >>323 それは利用者の予期を裏切るような実装をするなって話であって、 ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど
330 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:29:54.38 ID:quvSlm2c.net] >>312 C++も11以降がんがん新しい要素取り入れてるんだから、 今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。
331 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:36:30.23 ID:qC9ojyjS.net] >>322 同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w
332 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:46:48.63 ID:zfFV4MMV.net] メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。 参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。
333 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:02:06.91 ID:f8G6zOLb.net] >>326 不要な汎用化じゃね? 必要になってから修正でいいだろ。
334 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:16:20.03 ID:qC9ojyjS.net] >>328 ネタに突っ込むならもう少し面白いやつ頼むわ
335 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:31:55.38 ID:n+lE1LxE.net] setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。 ちょっともにょもにょする。
336 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:40:39.28 ID:n+lE1LxE.net] 外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。
337 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 21:41:16.10 ID:quvSlm2c.net] >>327 C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、 その辺の問題は解決しそう。
338 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:31:36.63 ID:kyBhPm5k.net] そういや、パッと見は普通のフィールド(メンバ変数)なせいで 実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。
339 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:49:26.27 ID:VuYRfyfh.net] てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ
340 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:31.16 ID:quvSlm2c.net] それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。 例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。
341 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:52.32 ID:oRYPM1bK.net] >>334 言いたいことはわかるが、 外からの属性アクセスをやめたとしても、 実際に内部状態が変化するなら参照透過ではないよな?
342 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:58:42.81 ID:VuYRfyfh.net] >>335 お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ >>336 もちろん
343 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:04:47.23 ID:q6GNZ6RD.net] >>337 否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw 素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。
344 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:23:31.33 ID:dxT5btnL.net] あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、 設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。
345 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:25:04.39 ID:dxT5btnL.net] X hetter 〇 getter
346 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:32:46.64 ID:wMSGanuZ.net] C++はプロパティないのでコード書くときは短く済ませたいんで ゲッターはSize()、 セッターをSetSize()にして Get省略してる
347 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:50:46.08 ID:VaOayOrf.net] >>341 自分はSetも省略する たまに引数の関係でできない時もあるけどさ
348 名前:デフォルトの名無しさん [2016/09/02(金) 04:12:21.27 ID:+CUdjKtm.net] 俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな
349 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 04:38:51.30 ID:17n5VyUh.net] メンバ関数ポインタってほとんど使わないから気にしたことなかった…
350 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 06:31:01.77 ID:96M6CE+e.net] >>342 ああ、引数の違いを利用すればsetもgetも省略できるのか。 int value(int val); ... メンバvalueの値の設定 int value(); ... メンバvalueの値の参照 同じ関数名で機能の異なるものを作るのは危険、 ということから思いつきもしなかったけど、 この使い方なら便利で有用かも知れないな。
351 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:16:35.65 ID:Vf4h0u1D.net] >>345 > int value(int val); ... メンバvalueの値の設定 なぜに戻り値?
352 名前:345 mailto:sage [2016/09/02(金) 07:33:47.21 ID:96M6CE+e.net] >>346 値の範囲制限とかする場合に、 戻り値に「実際に格納された値」を入れて返す。 あと瑣末なことだけど、 cout << a.value(val) << endl; みたいに格納しつつ値も使う、ができてちょい便利。
353 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:35:34.05 ID:MC2dvnuP.net] そう言うの、以前の値を返すのも多いから紛らわしいな。
354 名前:デフォルトの名無しさん [2016/09/02(金) 07:36:05.31 ID:sd/G3GoC.net] std::exchange的な〜?
355 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:49:11.95 ID:Vf4h0u1D.net] >>347 > 戻り値に「実際に格納された値」を入れて返す。 こっちはまだわからなくもないが > 格納しつつ値も使う、ができてちょい便利。 みたいな設計はどうかと思う
356 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:45.25 ID:/uIui9G6.net] そうだな (a = b) = c; みたいな20世紀の設計思想だな
357 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:48.98 ID:5Aji0+2+.net] *this
358 名前:を返してしまう [] [ここ壊れてます]
359 名前: ◆SEdFBOkLSw mailto:sage [2016/09/02(金) 08:29:24.90 ID:Nu/77N8P.net] >>352 メソッドチェーン出来て便利だよね。
360 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:44:56.31 ID:OksuLk+6.net] 演算子のオーバーロードみたいな使い方のポリシーでは a.val(b.val() + c.val()) みたいなやつ というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん
361 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:48:54.95 ID:xzsbRhmn.net] は? 演算子オーバーロードでどうやってプロパティの代用すんだよw プロパティ分かってない奴か? コードを示して見ろ。
362 名前:デフォルトの名無しさん [2016/09/02(金) 09:12:04.14 ID:+CUdjKtm.net] ideone.com/rZ2S2m こんな感じか?
363 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:14:47.55 ID:OksuLk+6.net] >>355 ググれば普通に出るが? なんでそんなに必死なの boost.2283326.n4.nabble.com/the-best-possible-c-properties-implementation-tt2626498.html
364 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:20:57.20 ID:OksuLk+6.net] >>356 そうね、そういう感じ
365 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 10:36:49.94 ID:AFnhG1K/.net] それじゃ仮想関数にできないじゃん。やり直し。 無理やりオーバーライドできるようにしなくていいよ。 既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。
366 名前:デフォルトの名無しさん [2016/09/02(金) 12:07:39.19 ID:+CUdjKtm.net] >>359 NVIって知ってる?
367 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:09:10.62 ID:rUpx5Cs1.net] 結局、プロパティは要らんわな。 タイプ量の問題ならマクロで解決出来るし。
368 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:26:51.71 ID:6Qab/oE8.net] これからのC++にプロパティーは必須だな。 これからもどんどん新しい機能を取り入れてどんどん わけがわからなくなるといい。
369 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:41:00.31 ID:1fpVQ5H8.net] マクロは入力補完できないし衝突の可能性がある
370 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:49:08.18 ID:6Qab/oE8.net] C++はマクロで出来ることをどんどん機能として取り込んで来たのに いまさら後戻りはできない。
371 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:00:48.43 ID:96M6CE+e.net] C#の「プロパティ」って機能がどんなのか知らないけど、 現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。 いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と 発表されるかもしれない。これまでもそうやって肥大化してるじゃない。
372 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:28:49.74 ID:qjeLwgBZ.net] Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている そこから様々な便利さが出てきている
373 名前:デフォルトの名無しさん [2016/09/02(金) 19:27:06.33 ID:nL/2u0CX.net] >>364 マクロで出来ることではなく、 マクロに頼っていたことを、 マクロを使わずに出来るようにしてきたんだよ。 スコープに従わないオブジェクト指向の敵との戦いだ
374 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:37:33.13 ID:XrGCfAOV.net] C++のテンプレートってポストプロセッサといっていいよね。 マクロみたいなもん。
375 名前:デフォルトの名無しさん [2016/09/02(金) 20:24:08.55 ID:8Rlh5aGL.net] ↓テンプレートとマクロは全く違うもの
376 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:41:05.83 ID:Wj/juS31.net] ソースコードの書き換えという点では同じ。
377 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:32.19 ID:W5XwdQxs.net] テンプレートはテキスト置換じゃないよ。 あれはコンパイルタイムに計算してるんだよ。
378 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:47.52 ID:1fpVQ5H8.net] テンプレートが単なる置き換えだと思ってるのか
379 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:50:16.78 ID:BGbCtBYN.net] マクロの親玉だ
380 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:52:42.81 ID:W5XwdQxs.net] テンプレートもconstexprもある種の計算機のサブセットだからなぁ。
381 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 22:57:15.93 ID:Q3H4IaZb.net] コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな
382 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 22:59:57.14 ID:3Xz3H/8a.net] いやいや…型チェックとかのなくすべき実行時オーバーヘッドがなくせるってだけで意味大有りだろ
383 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:04:13.81 ID:W5XwdQxs.net] PURE関数が入ったら、constexprなんかは関数がハッシュに置き換わってそこから値置換になるかも。 コードを全部どけて数字一個になる日も近い。
384 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:12:20.33 ID:1fpVQ5H8.net] まともにC++使ってて使い道無いとかどうやったらそう解釈できるんだ
385 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:30:26.24 ID:Q3H4IaZb.net] コンパイル時に決まってるなら計算する必要ないじゃん
386 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:32:54.48 ID:1fpVQ5H8.net] 手動で計算してくれ
387 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:35:19.44 ID:W5XwdQxs.net] そしてたどり着くのだ。42に。
388 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 00:45:41.77 ID:WTZrMZ5J.net] テンプレートなしだとマクロとvoid*でやりくりすることになるのかな <algorithm>の中身がおそろしいことになりそう
389 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:05:00.69 ID:VnUB3qPQ.net] >>381 43ですが
390 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:08:56.14 ID:VnUB3qPQ.net] templateなんてデブなブタに過ぎんからな
391 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:12:17.57 ID:qWYFFL/S.net] >>383 なんすかそれ。
392 名前:デフォルトの名無しさん [2016/09/03(土) 07:03:39.80 ID:ZkDRxv2v.net] >>375 最適化を否定するのか?
393 名前:デフォルトの名無しさん [2016/09/03(土) 07:04:51.23 ID:ZkDRxv2v.net] >>382 bsearchみたいにな
394 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 09:55:01.98 ID:MIqeGybs.net] templateなんて実際に使えるレベルものを書ける人なんてほとんどいないだろ 使うことはあっても、書くことはないだろ
395 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 10:03:25.99 ID:2vnq4BB3.net] ライブラリを作っていれば嫌でも使うが
396 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:15:11.07 ID:NvcWw3DB.net] >>388 キミの周りではそうかもしれないけど、templateみたいな便利なものを使えないようじゃ現代のプログラマとしては失格だと思います てかテンプレートってそんなに難しいか?
397 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:47:23.77 ID:KpYZ86nt.net] 標準コンテナくらいバカでも使える。 それだけでテンプレートのメリットは十分に享受できる。
398 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:48:35.81 ID:2vnq4BB3.net] boost並みの実装ができないと書けていることにならないらしい
399 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:11:48.21 ID:NXr2sGOM.net] >>388 汎用性があって他人も実際に使えるレベルとなると難しいかもしれんが、自分が使う範囲内では普通に書くだろう。 はじめからtemplateを書くんじゃなくて自分用のユーティリティとかをtemplate化することも含めればけっこうある。
400 名前:デフォルトの名無しさん [2016/09/03(土) 12:23:53.61 ID:ZkDRxv2v.net] >>390 ほんこれ
401 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:35:37.51 ID:UwaIhkeW.net] くだらねえな もっと為になる話をしろやカス
402 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:54:22.03 ID:e++gk4lZ.net] Boost並に使いこなせるか?って聞かれたら 謝るしか無いわ、ホントごめん
403 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:56:30.19 ID:2vnq4BB3.net] 為になる本ならたくさんある
404 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:22:16.46 ID:xlYZjvy0.net] メソッドA->B->C->D->Eと呼ばれる階層が深い構造のシステムがあって、 Eの計算結果をAで取りたい要望が新しくでてきたときってみんなならどう実装する? 条件としては、 ・AはwhileループでBを呼び出し続ける ・Eの最新の計算結果はループで毎回使う ・CがDをnewしてるから、単純なgetterとかじゃ取れない 1. 引数が増えるのは仕方ないが、A~Eに全て引数を追加する 2. Eでstaticなグローバル変数を作る。Aからはgetterで取得する 一応思いつくのはこのあたりなんだけど、もっとスマートなやり方ってあるかな?
405 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:25:09.63 ID:WhBzeO8K.net] >>398 メソッドDをCがnewする?なんか説明が胡散臭いんだけど、普通に戻り値で返すのはダメなん?
406 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:31:49.96 ID:ftE9LPfh.net] そんなことしてたら「この計算結果もほしいんだけど」ってなった時に また
407 名前:困ることになる。 Contextクラスを追加して、計算に必要な情報はそこに集約させろ。 そうすればどの階層からでも必要な情報を取れる。 [] [ここ壊れてます]
408 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:34:05.21 ID:xlYZjvy0.net] >>399 すまん、説明が適当だった CはDメソッドがあるクラスをnewしてるってこと DClass dClass = new DClass() C() { dClass->d();
409 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:36:43.61 ID:xlYZjvy0.net] >>399 ごめん、途中で送信しちゃった、 CはDメソッドがあるクラスをnewしてるってこと C() { DClass dClass = new DClass() dClass->d(); } 戻り値はEから外部システムに送信が成功したかどうかを表すbool値がすでに返されてるんだ >>400 Contextクラスか・・自分は使ったことないし、よく理解できてないからググってみるわ ありがとう
410 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:40:54.20 ID:2vnq4BB3.net] 説明の意味が全く分からない hoge B::get_E(){ D *d = c.create_D();
411 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:47:29.68 ID:e++gk4lZ.net] 今後パラメータが増える可能性があるようなら、それらをクラスなり構造体なりにまとめて、 何らかの方法で渡すようにすれば、最小限のコード修正で済むよってことじゃない?
412 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:51:40.11 ID:2vnq4BB3.net] >>402 そのCの戻り値にDの戻り値のEを入れてBが受ければいいんじゃないのか
413 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:58:09.73 ID:Px0qkqVR.net] >>398 引数を追加する方法を取るとして、楽するならば 一旦引数を構造体にして、後で追加したい場合構造体のメンバーを追加する形にする 全部の関数はその構造体を引数にしていれば、好きな構造体メンバーを追加しても形は変わらない
414 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:58:29.96 ID:Px0qkqVR.net] >>404 おれはや
415 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:59:56.32 ID:e++gk4lZ.net] >>405 既に戻り値は他で使われてるらしいし そのやり方だと、参照渡しなんかが現実的じゃない?
416 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:00:12.38 ID:WhBzeO8K.net] >>402 「全て引数を追加する」がContextかなんかの参照引数を渡してまわる方法だと思ったんだけど、違ったんかな? 戻り値を変えたくないならそうするしかないと思うよ。
417 名前:デフォルトの名無しさん [2016/09/03(土) 14:01:01.19 ID:ZkDRxv2v.net] >>395 気がついたやつがやれ 指図すんなクレクレ厨め
418 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:05:10.90 ID:2vnq4BB3.net] >>408 戻り値なんてpairなりtupleなりでいくらでも増やせばいいじゃん 周囲に影響を出したくないならそこから特定の値だけを取り出す関数でも噛ませればいい
419 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:14:55.80 ID:4FUmxt1N.net] コンポジションじゃ駄目なん?
420 名前: ◆SEdFBOkLSw mailto:sage [2016/09/03(土) 14:20:00.21 ID:WfmCkwdk.net] Eの結果がどう欲しいかによるとは思うな。 Aだけが知りたいなら素直にEがログ残せば良いと思う。 中間層が知りたいなら返してやらなきゃならんだろうけど、B→Eが他の部分で使われてたら関連するのビルドし直しだしテストし直しだし、出し直さないといかんのでは?
421 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:45:28.04 ID:KoWGZcqO.net] はいはい池沼は去れ
422 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 06:52:12.75 ID:5SDmlLW2.net] https://www.embarcadero.com/jp/products/delphi/downloads 現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能ですよ 右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます。 (無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
423 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 06:58:26.93 ID:5SDmlLW2.net] すいません、C++Builderはこっちです https://www.embarcadero.com/jp/products/cbuilder/downloads 現在、C++Builderが無料でダウンロード可能 右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます (無料ダウンロードは、2016年8月22日から9月9日までの期間限定) DelphiとC++Buiderは別個にダウンロードが必要な模様 (無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
424 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 07:03:58.75 ID:5SDmlLW2.net] >>415 はDelphiのみでした
425 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 07:28:40.73 ID:uvifPYcj.net] リンク先ページを見たけど、これでダウンロードできるのは 「30日間だけ無料で使えます」バージョンじゃないのかな。 "Try C++Builder FREE for 30 days" って ダウンロードできる期間が30日間、じゃないよね。 >>415-416 に出てる期間は30日には足りないし。
426 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:09:03.52 ID:xp6EP8jq.net] スターターエディションの方じゃね? C++ Builder https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download Delphi https://www.embarcadero.com/jp/products/delphi/starter/promotional-download
427 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:17:51.17 ID:ZU1xzEkS.net] >>390 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから テンプレートは嫌いなんだよ。 STLで十分。
428 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:56:16.37 ID:ZZxj7Xyl.net] 無能の言い訳にしか聞こえないな
429 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:13:47.98 ID:xp6EP8jq.net] >>420 > 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから 理由になってなくて笑た
430 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:22:29.27 ID:GcCwBDUy.net] >>420 特定の人間でなく周りに多いのなら受けるお前の方に問題があるんじゃないか?
431 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:39:20.02 ID:GZCXAM8t.net] 類友なのに自分は違うって思ってるパティーン 最も傑作でおめでたい人種
432 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 12:40:13.35 ID:+mIHXAwk.net] 昔のオブジェクト指向と似たような議論だな。 別にフルに使いこなせなくても恩恵は受けられるだろうにw
433 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 13:31:30.85 ID:u29z8UDZ.net] 難しいから使うなって一生使えるようにならないよね そういう進歩を捨てた人間は技術者とは認めてないわ
434 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 13:58:48.62 ID:6rO3xNqX.net] >>420 最後の2行は2016年度最強の名言だな
435 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:05:26.02 ID:VQnaPYaY.net] >>427 テンプラ屋でもやれば?
436 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:05:45.23 ID:X6kuqpOw.net] べつに嫌いな機能が有ってもおかしくはないな。 プリプロセッサーが嫌いな人とか、iostreamが嫌いな人とか人それぞれ
437 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:06:53.24 ID:6rO3xNqX.net] オブジェクト指向www 久しぶりに聞いたな
438 名前:デフォルトの名無しさん [2016/09/04(日) 14:07:38.02 ID:OnzMHuuE.net] >>420 まずはSTLが何の略語なのか調べてみよう!
439 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:17:00.28 ID:xp6EP8jq.net] >>429 嫌いな機能はあってもいいけどその理由が >>420 とかなのはねぇ
440 名前:デフォルトの名無しさん [2016/09/04(日) 14:45:42.58 ID:bYyi8Nkm.net] C++を使う理由の90%がテンプレートでしょう 使わないならCでもやっててください
441 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:52:46.08 ID:VQnaPYaY.net] C言語しか出来ない50代くらいのジジイたくさん居る で、なぜかえばっている
442 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:54:45.23 ID:Zvr3allz.net] 便利だと言い張って可読性の低い醜悪なもん作ってよこす奴が多いからCPPは嫌いなんだよ。 テンプレートは最高。
443 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:16:44.85 ID:9+LtAjSl.net] stlっていっても、実装見たら初学者でも書けるようなものがほとんどでしょ。 forで回して、比較してるだけとかwww 積極的に使う理由がない
444 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:23:23.36 ID:u29z8UDZ.net] コピペすんな
445 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:58:19.56 ID:dwel9f30.net] おいら最近はC#のほうが多くてC++はご無沙汰になってるんだけど C++のテンプレートが使えたらなあって思うことはたまにある
446 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 16:51:50.12 ID:1H4SDZ6a.net] は? C#にも名前は違うけどあるだろボケ
447 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:03:58.61 ID:u29z8UDZ.net] ねえよ
448 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:05:46.48 ID:dwel9f30.net] >>439 似たようなのはあるし、大体はそれで問題ないんだけど テンプレートとは根本的な仕組みが違うので、特殊化とか微妙に出来ることに差があるのよね
449 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:12:09.12 ID:UDXdUcTk.net] C#のジェネリックはCLIを一個しか生成せずに、型の違うオブジェクトが与えられたら JITコンパイル時に生成してるもんな だからサイズは小さいけどC++のtemplateとは根本的に考え方が異なる おまけにオブジェクト同士を演算しようとするとコンパイルエラーになるので dynamic、つまりリフレクションを使うしかないという
450 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 18:39:26.39 ID:c++wF4a4.net] IDがC++だー
451 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 18:54:35.76 ID:ZZxj7Xyl.net] >>443 おおすげーおめでとう
452 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:14:14.87 ID:1H4SDZ6a.net] >>442 言語機構が違うから実装も異なるのは当たり前。 それがどう実用上影響するのかを書けよ。 当たり前だが、俺はC#のジェネリックと C++のテンプレートの機能上の様々な相違点(例えばintを引数に取れないとか)は知った上で、 おまえさんの教育のために質問してるからな? 勘違いするなよ。
453 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:16:44.51 ID:1H4SDZ6a.net] intを取れないってのは_ C++でできるtemplate<int N> みたいなのがC#ではできないって意味な。 馬鹿が勘違いするといけないから。
454 名前:デフォルトの名無しさん [2016/09/04(日) 19:25:27.22 ID:OnzMHuuE.net] >>443 おおっ!
455 名前:デフォルトの名無しさん [2016/09/04(日) 21:25:33.06 ID:pHvOGCAw.net] >>439 > は? C#にも名前は違うけどあるだろボケ ジェネリックとテンプレートが同じだといいたいのかな? ガチなアフォ登場したなwww
456 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:27:10.35 ID:dwel9f30.net] >>448 C++分かる人に使い方の説明しろと言われたら間違いなく 真っ先に「テンプレートです」って言うけどな
457 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:37:35.91 ID:ZdgSZwYz.net] テンプレートはコンパイルタイム、ジェネリックはランタイムだ。
458 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:37:38.20 ID:xp6EP8jq.net] >>443 スゲー、なんか羨ましいぜ
459 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:48:56.88 ID:I3Tx/JDs.net] コンパイルタイムのくせにいちいち typenameをつけまくらないといけない クソ言語。 テンプレートパラメーターごとに特殊化が作られるんだから その辺テキトーでもいいはずなのに。
460 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:54:49.52 ID:LHkeQq2D.net] つか、型なんてコンパイル時なんて遅すぎだろ 普通は設計終わった段階で全て決定してるし。
461 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:58:44.17 ID:I3Tx/JDs.net] まじかよ 俺今日vector<int>って書いたけど vectorの設計後にインスタンス化しちゃったぜよ
462 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:00:39.11 ID:+mIHXAwk.net] 細かい違いはあれどジェネリックはC#版のテンプレートだろ
463 名前:デフォルトの名無しさん [2016/09/04(日) 22:16:41.22 ID:LHkeQq2D.net] ジェネリックはC#版のテンプレート 名言頂きました
464 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:18:59.30 ID:ItsH+W+6.net] ジェネリクスは汎化で、テンプレートはコンパイルタイムで、全くの別物じゃないの?
465 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:23:32.00 ID:r5JTAWNt.net] 言語機能の目的は似ているな 目的を理解せず仕組みを語りたがる中学生には違うらしいけど
466 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:24:22.75 ID:u29z8UDZ.net] ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな インターフェイスを定義してようやく特定の型のみ対応できる
467 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:27:35.01 ID:+mIHXAwk.net] >>457 それは相違点の1つだろ。 テンプレートにせよジェネリックにせよ一番の本質は 「型引数を受け取って特化型を生成すること」だからな。
468 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:52:01.38 ID:r5JTAWNt.net] >ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな へー、初耳だ
469 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 23:38:59.65 ID:c++wF4a4.net] >>444 ,447,451 ありがとう これを機にC++erになります
470 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 01:54:37.65 ID:Zffp85C6.net] >>461 おい、お前試してみてから言ってるんだろうな?
471 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 10:51:16.59 ID:ece9l1SB.net] >>458 目的が同じなら方法の違いは関係ないとでも?
472 名前:デフォルトの名無しさん [2016/09/05(月) 13:56:45.07 ID:4eC9RGW3.net] >>433 それは60代から上のCOBOL世代 50代はC++バリバリ使うぞ TCPL初版当時の若燕をなめんな
473 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 14:43:22.97 ID:5jAupIQr.net] 「COBOLerがテンプレート目的でC++を使う」 「」
474 名前:デフォルトの名無しさん [2016/09/05(月) 15:38:04.05 ID:4eC9RGW3.net] TCPL初版を見たこともないやつが 煽るつもりで自分の無知を晒しているなあw
475 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:00:17.35 ID:NFX2QcZC.net] C++(ベターC)
476 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:25:11.01 ID:M0OvRWnI.net] TCPL? 素直にターボCのこと?
477 名前:デフォルトの名無しさん [2016/09/05(月) 16:35:11.86 ID:4eC9RGW3.net] the C programming languageのことじゃね いいよ、そう思ってろ
478 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:42:54.97 ID:/PewDBDd.net] 老害
479 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:50:33.58 ID:S/r0zM88.net] >>464 関係無いな >>454 に対する>>457 のレスは話のすり替えに他ならない
480 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:51:54.71 ID:S/r0zM88.net] 番号ずれた 誤 >>454 に対する>>457 のレスは 正 >>455 に対する>>457 のレスは
481 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:14:07.88 ID:5F1Hp9JO.net] TCPL なんて初めてみたわ
482 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:40:32.27 ID:ZL7Oa3Lb.net] きかんな
483 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:46:24.46 ID:Oj+RV/HM.net] >>467 東京コンテンツプロデューサーズ・ラボとか出てきたんだけどw 検索ですぐヒットしないような用語使うのは止めてくれよ
484 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:56:37.92 ID:NFX2QcZC.net] Effective C++3冊を読んでいないやつは老害
485 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:36:14.34 ID:1ue4xWo4.net] 三冊もあんの?一冊にしてくれよ
486 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:38:07.50 ID:MPm038QF.net] >>470 普通K&Rって言わね? 何処の田舎モンよ?
487 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:46:21.19 ID:32FGf11f.net] >>478 Effective STLを含めれば4冊もあるぞ
488 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:48:51.10 ID:1ue4xWo4.net] STL何それうまいの?
489 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:51:36.83 ID:IQvMB0/c.net] 仮に TCPL が『プログラミング言語C』(K&R)のことだとしても、 いきなりC++のスレッドで出てくると違和感があるのだが。
490 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:56:18.25 ID:zRA0QsUX.net] 53ページを暗記する奴?
491 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 21:02:31.55 ID:1ue4xWo4.net] 蟹チャーハン何それうまいの? 読んだことはないけど20世紀に信者がウザかった記憶だけはあるな ANSIで標準化されたことを自分のレーゾンデートルを奪われたと勘違いして幻覚を見たかのような必死さが伺えた
492 名前:デフォルトの名無しさん [2016/09/05(月) 22:01:52.55 ID:4eC9RGW3.net] >>479 よう、真性カッペw
493 名前:デフォルトの名無しさん [2016/09/05(月) 22:02:46.08 ID:4eC9RGW3.net] あ、アンカー打ち忘れた >>482 も真性カッペな
494 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 22:06:39.74 ID:32FGf11f.net] おじさんくやしがりすぎやろ…
495 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 22:18:16.67 ID:zRA0QsUX.net] TCPLなんて検索しても全くヒットしないじゃん SICPくらいヒットするように頑張ってからドヤ顔するんだな
496 名前:デフォルトの名無しさん [2016/09/05(月) 23:01:37.47 ID:4eC9RGW3.net] かつて通用してて曖昧性が指摘されて後に死語化したものがヒットするわけねーだろ こういうのは検索だけがソースなやつにはわかるわけがない
497 名前:デフォルトの名無しさん [2016/09/05(月) 23:03:21.14 ID:4eC9RGW3.net] 禿が、言語はそいつが何を考えることが出来るかを決めてしまう、 というのと同様、検索によって何を知ることが出来るかを決められてしまってるやつw
498 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 23:04:11.29 ID:g7jOSJ0B.net] the c++ program language
499 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 23:05:08.72 ID:9BGJMvFR.net] 真っ赤になって弁明、無意味な連投、あとは草大量に生やせばパーフェクト
500 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:08:40.53 ID:F5fS/nn6.net] おいおい、自分で老害認定してるジジイをあんまりいじめるなよw
501 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 02:59:46.82 ID:bgQCWsty.net] 死語をドヤ顔で使う老害なんて早く死ねば良いのに
502 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 06:24:00.28 ID:AN+xYaOm.net] TCPL って "The C++ Programming Language" のことなのかな? ++ がない方の書名(K&R)と紛らわしいわね。 …すると >>467 と >>470 はID被りの別人だったのか。 "Learning Standard C++ as a New Language"「標準C++を新しい言語として学ぶ」や 『プログラミング言語C++』(TCPL?)第4版の中で、ハゲ先生は 「新しい規格で便利な機能を使え」と言ってたはずで、 そこからすると「古い参考書を読んだことがある方が偉い」って 主張はなかなか賛成しにくいなぁ。
503 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 07:12:19.22 ID:JRdVpVwV.net] 祝 void_t 標準入り
504 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:22:00.35 ID:7VUHkvW+.net] そういうのは規格化されてから言え お前の脳内の標準などどうでもいい
505 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:40:04.46 ID:0OEY122r.net] void_tは決まったんじゃないのか
506 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:50:04.45 ID:ewg0kDeB.net] >>497 「次期C++1zでの標準化がほぼ確定したので・・・」 と細々と書かないと通じないのか?
507 名前:デフォルトの名無しさん [2016/09/06(火) 10:05:09.80 ID:ScDQQjzO.net] >>495 偉いとか言ってねえぜ 相対評価ではなく絶対評価で シッタカはクソ以下だつってるだけだ
508 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 10:11:45.27 ID:F5fS/nn6.net] The C++ Programming Language なら"TC++PL"な www.stroustrup.com/glossary.html#GTC++PL# 用語がデタラメなジジイは話が通じなくて疎まれるだろ?
509 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 10:42:23.06 ID:yUThNKeL.net] TPPみたいになんでも略し杉w
510 名前:デフォルトの名無しさん [2016/09/06(火) 10:44:47.41 ID:ScDQQjzO.net] あとからそうなったんだよ ガキが知らないのは仕方ない 知らねーなら知らねーなりにしとくぶんには可愛げあるんだよ それを尻が青いくせにジジイのふりをするからバカにしか見えないってだけさ
511 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 11:17:08.98 ID:F5fS/nn6.net] >>503 >>494
512 名前:デフォルトの名無しさん [2016/09/06(火) 11:20:23.27 ID:ScDQQjzO.net] >>504 おまえが死ね 今からダンプに轢かれに出かけろ
513 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 11:37:06.01 ID:ewg0kDeB.net] 略語ってどこまで通じるのか不安になるな。 sfineaやRAIIは大丈夫としても、TMPとかCPPとかって一般的なんだろうか?
514 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 12:39:46.48 ID:bgQCWsty.net] >>504 死語って言うより死産だよな TCPL w
515 名前:デフォルトの名無しさん [2016/09/06(火) 12:58:22.50 ID:ScDQQjzO.net] あー、禿のWebページでしばらく使ってたのも知らないわけね そういうのはいくら検索しても出るわきゃねえしガキにゃ厳しいな
516 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 13:49:15.29 ID:IyJPjQ2g.net] 必死で検索したようだが出てこなかったのかw 残念だったなw
517 名前:デフォルトの名無しさん [2016/09/06(火) 13:56:51.77 ID:ScDQQjzO.net] おまえがな
518 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 15:01:29.03 ID:sQOv13Gi.net] くだらなすぎて俺にとってはどうでもいいけど 「"TCPL" "the C++"」でググると結構出てくるけどな例えば https://www.allacronyms.com/TCPL/The_C%2B%2B_Programming_Language
519 名前:デフォルトの名無しさん [2016/09/06(火) 15:55:19.22 ID:ScDQQjzO.net] デタラメとかぬかしてたクソガキ、息してるか?
520 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 18:43:34.22 ID:R7REkw4z.net] ハゲが自分のホムペで紹介した俺用語をさも普遍的な用語であるかのように語られても困るな
521 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:48:01.80 ID:1XSUlqoQ.net] >>508 で、使ってたと言う証拠は? 脳内にしかないとか言わないよな w
522 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:54:58.70 ID:YAp6qqUR.net] ここ相談室なんだけどみんな何の相談してるの
523 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:59:18.61 ID:lMZiI53V.net] 自分の病気の症状についての相談
524 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 20:18:59.06 ID:PHkuODAN.net] void_t は何に使うの
525 名前:デフォルトの名無しさん [2016/09/06(火) 21:50:12.78 ID:ScDQQjzO.net] >>514 あー、すまんな 俺んとこでは魚拓は脳内だけだ だからお前は未来永劫見ることができない いやーすまんすまん
526 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 21:57:58.50 ID:VCItaBw6.net] >>515 ここ見るとC++に関わる奴はどこか頭おかしいってわかるだろ? つまりそういうことだ
527 名前:デフォルトの名無しさん [2016/09/06(火) 22:51:35.93 ID:EdXevder.net] 頭がおかしい(髪が変)
528 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:12:54.88 ID:JRdVpVwV.net] >>517 知ってるでしょ
529 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:26:52.58 ID:sQOv13Gi.net] void_tはSFINAEの定番パターンを標準化しただけ
530 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 05:00:10.45 ID:MZvlar21.net] >>518 要するに、単なる妄想だったってことかよ w
531 名前:デフォルトの名無しさん [2016/09/07(水) 08:16:26.88 ID:4YmObOwP.net] いや現実だよ おまえが物心つく前か生まれる前か知らんが 歴史上そういう事実があった 過ぎてしまった歴史がぎゃんぎゃん吠えることで変わるとでも思っているなら それは隣国のメンタリティだね
532 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:27:48.44 ID:W2drX/qt.net] で、その歴史的事実が共有できる資料は?
533 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:34:32.44 ID:uFAnWK01.net] ただの事実と歴史とじゃ重要性が違う。 要するに記憶に留めるべき事実が歴史というわけだ。 逆に「そんなもん知らん」と一蹴されてしまう事実もありうる。
534 名前:デフォルトの名無しさん [2016/09/07(水) 09:00:25.57 ID:4YmObOwP.net] >>525 保存してねえって言っただろ鳥アタマめ
535 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 09:05:41.79 ID:WoQJVoSd.net] いや、資料がないのに歴史だって主張して それを共有できないって言うと歴史修正主義だって言う姿が それこそおとなりさんぽいなあって思ってw
536 名前:デフォルトの名無しさん [2016/09/07(水) 09:06:18.84 ID:zaGYBHu2.net] それはどこの国の歴史なんだろう? tcpl "the c programming language" でググると、中国系、朝鮮系では使われてるらしい
537 名前:デフォルトの名無しさん [2016/09/07(水) 09:40:41.09 ID:4YmObOwP.net] >>528 別に主張なんかしてねえよ 事実を偽りなく述べているだけだ 魚拓の有無で変わったりしねえことだ 自分が見られないからってヤダジタすんなガキ
538 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 10:32:53.78 ID:P2AyoRLU.net] 自分より年下と思われる人間をガキ呼ばわりしてるけど、年上が偉いという考え? それって儒教っぽいな 儒教といえばお隣の国…あっ(察し
539 名前:デフォルトの名無しさん [2016/09/07(水) 10:39:46.68 ID:/D7wbjXh.net] ここの住人がスルー力0なのは間違いないな
540 名前:デフォルトの名無しさん [2016/09/07(水) 11:24:34.86 ID:prfLhh2R.net] ソースは脳内 そんな恥ずかしい主張ができちゃうなんてもしかして教育を受けてないのかな?
541 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 11:50:26.76 ID:G0adIbkV.net] 暇つぶしが目的だから、スルーしたらつまらないんだろ
542 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:09:49.06 ID:Z3ZB/oVu.net] 煽る暇人は2chだからどうしようもないが煽られて何日も踊っているのはさすがにバカだな
543 名前:デフォルトの名無しさん [2016/09/07(水) 12:41:12.31 ID:pAK1tPG0.net] 暇つぶしなのではなくお互い必死なんだよ クールを装ってさもどうでもいいように演じてるけどお互い顔真っ赤だよ
544 名前:デフォルトの名無しさん [2016/09/07(水) 12:54:37.05 ID:4YmObOwP.net] >>531 なんだおまえ、ガキって書いてあるのを見るたびに自分が卑しく思うのかw >>533 記録を俺んとこでは残していないってだけだ 誰かが証拠を持ってきたときにもボロが出ないように言ってるぞ そんときゃおまえが恥ずかしくて出てこれないわけだが
545 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:55:16.53 ID:Ur9IZRDe.net] なんかスレ伸びてると思ったらまーたゴミどうしの罵り合いかよ くだらないことで熱くなる奴は脳みそ壊れていくんだというのが如実に分かるよ
546 名前:デフォルトの名無しさん [2016/09/07(水) 13:08:27.65 ID:prfLhh2R.net] >>537 俺になんか恥ずかしい要素あったか? スレ違いの書き込みしたことくらいかな
547 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 13:11:15.34 ID:v93B1UIW.net] 誰かが証拠を持ってきたときw 自分の無能を示しておいてなんとも思わんのだな
548 名前:デフォルトの名無しさん [2016/09/07(水) 13:58:33.58 ID:LPRQdItN.net] バーカ
549 名前:デフォルトの名無しさん [2016/09/07(水) 15:57:42.39 ID:4YmObOwP.net] >>540 禿のWebページの魚拓をログ化していなかったのを無能と言ってくれるのか さぞかし有能なおまえさんなら持ってるだろうからさっさと出せ
550 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 19:25:39.09 ID:OYvFv6+r.net] ソースは脳内というのは日常会話の殆どだな。 だから「アナタは私と異なる認識をお持ちなんですね」でしかない。 それを「アナタは証明できないからそれは嘘です」にすり替えるのは詭弁
551 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:06:01.39 ID:1kliuuT7.net] >>542 俺超有能だけどそんな資料なかったよ つまり君の言ってたことは全部君の妄想ね はい終了
552 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:12:54.95 ID:2w88FCBz.net] >>508 > あー、禿のWebページでしばらく使ってたのも知らないわけね が正しいとしてもここにいる人が知らないような略語をどや顔で出すのは頭おかしい まあどうみても >>511 辺りを間違えて出しちゃって引っ込みつかなくなってるだけだろ w
553 名前:デフォルトの名無しさん [2016/09/07(水) 20:34:12.89 ID:4YmObOwP.net] >>545 では、つかってよいりゃくごをあんたはどうやってはんだんしてるんだ? あたまおかしいとまでおおきくでるならそれなりのきじゅんはあるんだろうな? さいじゅうどのていのうにあわせるのがぴーじーのしめいとでもかんがえているなら あふぉだなくそだなだんぷにひかれてしねばいい
554 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:13:15.14 ID:Ur9IZRDe.net] 何
555 名前:続ければ気が済むんだよこのゴミどもは [] [ここ壊れてます]
556 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:37:17.77 ID:YLqxd+vc.net] 自己反映なメタ表現とは高度な技を
557 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:47:20.81 ID:Mf7TDnfn.net] そんなことよりvoid_tの話をしようぜ。 SFINAEの話だけど。 SFINAEってconcept的な使い方以外にどんな使い方があるの?
558 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:19:03.95 ID:LPRQdItN.net] 知らねえよバーカ
559 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:20:48.09 ID:YLqxd+vc.net] ワードサラダにマジレス
560 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:29:54.18 ID:yR890zwI.net] >>549 concept的な使い方ってどんなの? 漠然とパターンマッチ的なものをイメージすればいいのかな
561 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:02:15.19 ID:w601usbW.net] 良くあるのがメンバーの有無で処理を変えるパターンかな。 俺も良くわからんが。
562 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:12:42.51 ID:sU4tW1UK.net] enable_ifと組み合わせて使うんじゃない?
563 名前:デフォルトの名無しさん [2016/09/08(木) 01:13:18.16 ID:NYidnx0p.net] int と longの違いって何ですか?
564 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 01:15:30.19 ID:p3dWf/BM.net] 歴史?
565 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 02:02:44.82 ID:NonfcYWK.net] >>555 データモデルによりサイズが異なる(かもしれない)
566 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:16:44.74 ID:6JK6uF4x.net] >>546 正論を言われて反論できなくなったら子供じみた態度でひねくれる ガキだなw
567 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:47:35.75 ID:rBeNUfmR.net] アルツハイマーの症状の一つの幼児化だね
568 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 05:23:55.94 ID:vt8xUZJ5.net] 酢を飲め
569 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 06:23:15.75 ID:siaRBrBq.net] >>546 つかってみてだれもしらなさそうならおとなしくひっこめろ、ばーか
570 名前:デフォルトの名無しさん [2016/09/08(木) 07:39:36.05 ID:TmgW3MRN.net] >>561 やだね C++スレでC++関連の用語を知らない無知野郎に合わせる必要はない
571 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 07:54:49.83 ID:P8D+cYPH.net] まじかよ お前ひとりでつらいだろ?
572 名前:デフォルトの名無しさん [2016/09/08(木) 08:11:01.20 ID:cE384uJ3.net] ガイジ
573 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 08:36:52.70 ID:QwMnHPC3.net] 用語とか言い出しちゃったよ、この人 w
574 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 09:31:44.41 ID:y1qiR/+w.net] [[deprecated]]
575 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:11:48.25 ID:BaIwaWl+.net] このスレ的にはK&R初版でC学んだことを自慢してる奴より AT&T cfont のレファレンスでC++学んだ俺の方が偉いはず
576 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:25:42.94 ID:ik/GfLoL.net] なんでその程度でエラぶれるの?w
577 名前:デフォルトの名無しさん [2016/09/08(木) 12:08:58.27 ID:TmgW3MRN.net] cfrontは俺も使っていたが cfontて何だ? Courier Newか何かか?
578 名前:デフォルトの名無しさん [2016/09/08(木) 12:28:42.58 ID:NCg12FAS.net] 古ければ古いほど劣っているからな? 古参が全く自慢にならない世界だぞ
579 名前:デフォルトの名無しさん [2016/09/08(木) 12:44:06.52 ID:TmgW3MRN.net] プログラムのバージョンと プログラマの経験年数を 一緒にするのかよ
580 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:47:14.04 ID:P8D+cYPH.net] 経験年数と優秀さを一緒にしてはいけない 経験年数10年と20年では10年の方が優秀なことが多い
581 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:48:47.71 ID:NCg12FAS.net] >>571 経験のバージョンが古い
582 名前:デフォルトの名無しさん [2016/09/08(木) 12:53:20.28 ID:TmgW3MRN.net] >>572 ソースplz
583 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:10:36.68 ID:P8D+cYPH.net] ソースは俺の観察
584 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:11:54.76 ID:p2bVgJ9p.net] 自分のソースは脳内だけど人にはソースを求める白痴
585 名前:デフォルトの名無しさん [2016/09/08(木) 15:27:51.19 ID:TmgW3MRN.net] >>576 脳内じゃない ここは誰が何と言おうとおまえが間違っている おまえそもそも事実を知らないんだろ だから俺の言うことのどこがどう間違っているのか具体的な指摘ができない もっとも知ってたら指摘するところがないはずなんだが
586 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:46:16.67 ID:vI60taJg.net] 経験十年積めば大抵のことはできるし対応できるだろうが 経験二十年にはかなわないだろう
587 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:59:40.04 ID:rBeNUfmR.net] archiveから探してこいよ、認知症のジジイ
588 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:00:00.79 ID:y1qiR/+w.net] んなこたあない
589 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:59:18.64 ID:P8D+cYPH.net] >ここは誰が何と言おうとおまえが間違っている 真実を知っているのがこの世で自分だけだなんて もう生きててつらいだろうな
590 名前:デフォルトの名無しさん [2016/09/08(木) 18:09:20.62 ID:Ig68v84V.net] プログラムの経験年数なんて関係ない。 重要なのはどれだけトラブルの経験を積んだかだ。 女性経験が豊富なのと同じだ プw
591 名前:デフォルトの名無しさん [2016/09/08(木) 18:15:13.55 ID:TmgW3MRN.net] >>581 逆だ 知らないのがおまえくらいなんだよ 当時を知っている人が身近にいたら聞いてみろ >>582 童貞乙
592 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:21:23.76 ID:p2bVgJ9p.net] >>583 当時を知ってる人が身近にいたから聞いてみたけどそんなことはなかったってみんな言ってる。 つまり嘘つきはお前。はい論破。
593 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:23:14.02 ID:Ou19mRgF.net] 何日も平日の昼間にくだらんいい争いしなきゃならないとか仕事かよ
594 名前:デフォルトの名無しさん [2016/09/08(木) 18:25:06.25 ID:Ig68v84V.net] プログラミングを半年もやらなかったら、けっこうな部分を忘れる世界だし、 進化も激しい世界だから、経験を引き継いで発揮できるのはせいぜい五年くらいだろう。
595 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:30:38.43 ID:P8D+cYPH.net] 年を取ると物忘れが激しくなる。 「誰が何と言おうと」と自覚しておきながら3時間後に 「知らないのがおまえくらい」と言い出しちゃうぐらい だから>>584 はもう責めないでw
596 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:01:10.30 ID:aq+STl42.net] 相談室っていうか病室だな・・・
597 名前: [] [ここ壊れてます]
598 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:09:24.56 ID:69NbtRcU.net] 大抵、経験20年とかになってくると老眼とかで大量の情報を高速に見るとかが出来なくなってそう 経験10年なのに目が悪くなってきて辛いです
599 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:34:58.14 ID:y1qiR/+w.net] void_tの話を聞くほうが建設的だ。
600 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:40:42.54 ID:ik/GfLoL.net] だからさ、型名に_t付けるなよ システムハンガリアンかよ
601 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:48:21.97 ID:y1qiR/+w.net] >>591 using ***_t = ***::type; ってパターンもダメ?
602 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:56:47.42 ID:ZGDN5kDf.net] >>577 もう楽になりなよ...
603 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:17:46.69 ID:rBeNUfmR.net] 頑固になるのもアルツハイマーの症状の一つだね
604 名前:デフォルトの名無しさん [2016/09/08(木) 20:50:28.56 ID:TmgW3MRN.net] >>593 は? 苦しい屁理屈でへとへとなのはおまえだろ
605 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:58:33.03 ID:p3dWf/BM.net] 同じ穴のムジナが楽しく荒らしてるなぁ。 ただ一言いいたい。 カエレ!
606 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:14:31.27 ID:A7Pb5oFv.net] うそ かえらないで
607 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:36:18.32 ID:siaRBrBq.net] 苦しい屁理屈 ⇒ >>577 そりゃお前の脳内の事実なんて誰も指摘できんわな w
608 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 00:55:13.72 ID:6Bh01W2V.net] 頑固になるとautoや{}の初期化や->の戻り値が許せなくなります auto b = new auto(true); char *p{}; auto main() -> int {}
609 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:02:58.35 ID:4oqKijqb.net] >auto main() -> int {} 頑固じゃないけどこれやる奴は何がしたいんだろう
610 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:07:56.60 ID:6Bh01W2V.net] これは頑固の良い例ですね スタイルの統一とかそういうことを考えられず、変化を拒絶するようになります
611 名前:デフォルトの名無しさん [2016/09/09(金) 01:10:09.08 ID:kBQSHV64.net] new auto(); なんて出来ないしな…
612 名前:デフォルトの名無しさん [2016/09/09(金) 01:18:20.19 ID:kBQSHV64.net] >>601 じゃあ規格のexampleのスタイル統一から初めてくれよ。 何の意味があるのかしらんが、意味があるなら賛同者出てくるでしょ?
613 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:21:30.28 ID:Wiz5/g3s.net] new auto(10)みたいに推論できる場合ならちゃんとできるみたいだけど https://ideone.com/zPeSla ただauto main() -> int {}を書くやつは正直、俺知ってるんだぜ自慢したい厨房にしかみえない タイプ数長くなってんじゃん、何のために導入された書き方か分かってんのかね
614 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:23:35.62 ID:6Bh01W2V.net] これも頑固の良い例ですね 「言語仕様に複数のスタイルが存在してもせめて自分のコード内は統一しよう」 みたいな考えを示唆しているのに、感情的になって関係無いことを言い出すのが特長です
615 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:27:12.55 ID:6Bh01W2V.net] auto main() ->int{}についてはハンをおしたように 「文字数が多い」と言い出すのも特長です 今まで同じレスを見たこともある人も多いのではないでしょうか 「スタイルの統一という観点からはあってもおかしくない」と説明されても 他人が使うことすら許せず否定に躍起になるのが特長です
616 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:35:22.25 ID:6Bh01W2V.net] もちろん新しい記法が良いことばかりではありません auto b{true};は書けてもnew auto{true}は書けないなど一貫性に乏しい所も有ります
617 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:36:37.09 ID:Wiz5/g3s.net] 別に他人がそう書くのを許せないわけじゃないよ ただ俺はそう書くやつに対してはおかしなやつとかネガティブな印象を持つというだけ 今まで多くの同じようなレスがあったということは俺と同じ印象を持つ人が多いということだと思うよ
618 名前:デフォルトの名無しさん [2016/09/09(金) 01:40:41.63 ID:kBQSHV64.net] >>605 言語仕様に複数のスタイルとかいう話ではなく規格のコード例ですらそんな書き方必要でなければしてねえよという話 どっちが頑固なんだかね
619 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:40:48.56 ID:6Bh01W2V.net] これも頑固の良い例ですね とに新しいスタイルを見ると相手を非難しないと気が済まないのが特長です >>608 のレスにも「おかしなやつ」という攻撃的な単語が見られますが、これも一例と捉えてよいでしょう
620 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:41:50.71 ID:uFCjw0pQ.net] autoつかわなくても書ける場所でこれ期バカしにauto使うヤツはバカなんだと思う
621 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:44:15.73 ID:uFCjw0pQ.net] あとで型名明記するとかなんの為にauto使っているのかバカなんだと思う
622 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:52:18.15 ID:6Bh01W2V.net] これも頑固の良い例ですね 型推論のautoとtraining-return-typeの先頭のautoは違うのですが とにかく理解以前で拒絶してしまっているのが特長です でも確かにauto f() -> auto {}みたいな書き方はかなり変人かも知れませんね
623 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:53:27.43 ID:4oqKijqb.net] 結局auro main() -> int{}はお遊びなのか?
624 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:06.38 ID:uFCjw0pQ.net] >>613 本末転倒だってんだよバカ
625 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:54.91 ID:p4LGwUo/.net] ぶっちゃけID:6Bh01W2Vってまじであの書き方がスタイルの統一のという理由が第一で導入されたと思ってそうなんだけどそうでもない? >>612 の言わんとしてることが理解できてない気がする
626 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:09:08.65 ID:6Bh01W2V.net] そうですね テンプレート関数の戻り値のために導入されたことは良いとして、 「>>612 の言わんといていることはplaceholder typeとtrailing-return-typeの混同による不適切な見解ではないか」と述べているのに 「理解できていない気がする」とあやふやなのは不思議ですね これらも頑固なことによる反射的な拒絶の一面なのかも知れません
627 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:16:06.31 ID:6Bh01W2V.net] また「導入の目的とは別にスタイルの統一の観点からはあっても良いのではないか」 という説明を受けても「目的が違う」と思考停止して否定ありきで考えてしまうのも特長です 本日は600から続く一連の自演レスでその片鱗が伺えたと思います
628 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 07:33:30.80 ID:H3RR5zb8.net] そもそもスタイルの統一にこだわる必然性はない。 タブとインデントの話と同じで混在したってかまわない。
629 名前:デフォルトの名無しさん [2016/09/09(金) 07:36:21.12 ID:SVVRFbIW.net] タブとインデントを混同するやつは見つけ次第殺せ
630 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:00:45.68 ID:z8Otf9Pu.net] どうしてこんな釣り耐性よわいの。 A派とB派の対立じゃなくて Bスタイルを否定すんな派とBスタイル否定派 は主観の押しつけあいで論破できるわけねーし。
631 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:09:04.86 ID:H3RR5zb8.net] >>620 そういうのってなんか自閉症ぎみなんじゃないの?
632 名前:デフォルトの名無しさん [2016/09/09(金) 08:35:47.51 ID:G0RBn0pa.net] trailing-return-typeを、4文字以下では使わない なんてやってると int abs(int); auto abs(float) -> float; てな具合になるよなあ ぎりぎりアウトな char* begin(); を auto begin() -> char*; にしながら、 俺なにやってんだろって気になることがある
633 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:42:02.98 ID:oGuibT0g.net] >>620 同意する そういう奴はたいてい他でもいいかげんだからプログラマーには向いてないことを自覚してほしい
634 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:55:13.21 ID:H3RR5zb8.net] んなこたーない
635 名前:デフォルトの名無しさん [2016/09/09(金) 11:10:43.31 ID:kBQSHV64.net] >>623 >trailing-return-typeを、4文字以下では使わない なんで?
636 名前:デフォルトの名無しさん [2016/09/09(金) 11:25:30.49 ID:G0RBn0pa.net] int abs(int); を auto abs(int) -> int; にするメリットは? autまでタイプした時点でやんなってくるぜ俺は auto exit(int) -> void; とかナメとんかくらって気ぃしね?
637 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:52.32 ID:xpG9Ka1d.net] スタイルの統一という意味では、新しいC++では 普通の関数とメンバ関数を obj.func(); func(obj); のどちらのスタイルでも相互に呼び出せるようにするかもしれない って話だけど・・・ メタプログラミングの観点から見ればどちらの表記でも呼び出せたほうが 便利なのは火を見るよりも明らかだが それはそうとして スタイルを統一したいって言ってる頑固な約一名は これも統一するつもり? つまり普通の関数やメンバ関数の呼び出しを全部 obj.func(); もしくは func(obj); に統一するつもりなのかって話 で、世の中には引数を取らない関数、例えばabort()などもあるし fgetsみたいにFILE構造体が引数の最後に来るような変態関数もあるので 統一するならCスタイルの func(obj); になると思うわけだけど そうすると、全部 method(obj) の形式で書くつもりか? この書き方だとエディタの補完が効かないので激しく作業効率が悪いわけだが
638 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:58.44 ID:CsE6YZtW.net] >>627 メリットはないだろうね
639 名前:デフォルトの名無しさん [2016/09/09(金) 11:52:48.11 ID:kBQSHV64.net] >>627 4文字って何って話だよ
640 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:57:16.30 ID:CsE6YZtW.net] スタイルの統一ってメタプロのためでしょ? 普通に書く場合はどっちだっていいし、見た目の統一なんてさらに気にするポイントじゃないし。
641 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:01:21.07 ID:xpG9Ka1d.net] というかそもそも、 統一しなくてもよいように、そのために どちらの表記でもよいようになっている もしくはそうする予定なのに 統一する意味あんの?
642 名前:デフォルトの名無しさん [2016/09/09(金) 12:08:44.98 ID:G0RBn0pa.net] >>629 autoが4文字だろ? これより長いstd::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら autoにすると短くすっきりするが、 4文字より短い例えばintをautoにしてもそういう効果がないばかりか 厳密には1文字損してるだろって話だよ
643 名前:デフォルトの名無しさん [2016/09/09(金) 12:09:29.33 ID:G0RBn0pa.net] アンカー間違えた s/>>629 />>630 /gっと
644 名前:デフォルトの名無しさん [2016/09/09(金) 12:12:46.72 ID:kBQSHV64.net] >>633 float f(); を auto f() ->float; って書いたら一文字損してるって思うの? どういう計算???
645 名前:デフォルトの名無しさん [2016/09/09(金) 12:21:26.23 ID:G0RBn0pa.net] >>635 逆だよ それは1文字得してる
646 名前:デフォルトの名無しさん [2016/09/09(金) 12:26:40.05 ID:kBQSHV64.net] 何言ってるのかわかんねー 文字の数を数えれないのかな…
647 名前:デフォルトの名無しさん [2016/09/09(金) 12:27:41.92 ID:G0RBn0pa.net] std::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら autoにすると短くすっきりする ↑ これの意味わかる?
648 名前:デフォルトの名無しさん [2016/09/09(金) 12:36:32.00 ID:kBQSHV64.net] >>638 戻り値の型がそれだったとして trailing-return-typeを使うと文字数は6文字(autoと ->)増える事に変わりないだろ?何言ってるんだ?
649 名前:デフォルトの名無しさん [2016/09/09(金) 12:40:28.34 ID:G0RBn0pa.net] >>639 まさかと思ったが、やはりそういうことか よし、おまえはtrailing-return-typeを使うな これにて一件落着
650 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:49:10.42 ID:tc9dXmwp.net] 引数に依存しないならどっちだって同じさ。 ->以下を省略するのは別な話
651 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:51:16.50 ID:4oqKijqb.net] 聞きたいんだけど引数無しのコンストラクタが無いクラスってあり? 絶対にコンストラクタで引数を入れないといけない
652 名前:デフォルトの名無しさん [2016/09/09(金) 12:51:31.27 ID:CB2F3RXF.net] autoが本当に役に立つのはこういうケースだな okns.webcrow.jp/text/CPP0xFAQ.html.ja#auto 変数の型が template 引数に強く依存している場合は、auto なしにコードを書くのは本当に難しくなるだろう。 例えば: template<class T, class U> void multiply(const vector<T>& vt, const vector<U>& vu) { // ... auto tmp = vt[i]*vu[i]; // ... } tmp の型は T と U の乗算結果になるが、それが正確に何型であるか人間の読み手が見出すのは難しい。 しかし、もちろんコンパイラは、自身が扱っている適切な T と U が何型であるかを知っている。
653 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:52:12.20 ID:CB2F3RXF.net] ageたスマン
654 名前:デフォルトの名無しさん [2016/09/09(金) 13:05:31.22 ID:kBQSHV64.net] >>643 autoではなくautoキーワードを使った機能の一つであるtrailing-return-typeの話してたんだけど お前の例を借りるなら template<class T, class U> auto multiply(const vector<T>& vt, const vector<U>& vu) ->decltype(vt*vu) こんな感じで引数の名前を返り値の型の決定に使いたい時の為に導入された。あとはlambda
655 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 13:23:41.38 ID:EcclX7iE.net] >>642 「デフォルトコンストラクタが存在しないクラスを作ってもよいか?」 あるいは「クラスは必ずデフォルトコンストラクタを持つべきか?」 という質問かな。 外部から何かの値を指定しないと正常な状態にならないって対象なら デフォルトコンストラクタなしの方が、間違った使い方をされなくて済む。 具体的には…今すぐ思いつくのは、 「ファイル名を指定、コンストラクタ中でファイルを開くクラス。 デストラクタでファイルを閉じる」とか(そもそも良い設計か分からんけど)。 この場合はデフォルトコンストラクタじゃ意味ないよね。
656 名前:デフォルトの名無しさん [2016/09/09(金) 13:28:11.41 ID:kBQSHV64.net] >>642 普通にある。 例えばstd::lock_guard
657 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 14:32:40.92 ID:QrmkumON.net] >>642 あり?といういか引数無しがデフォルト
658 名前:デフォルトの名無しさん [2016/09/09(金) 14:54:03.88 ID:aqM9pKJ0.net] >>648 コンストラクタで絶対に引数をとらなければならないクラス設計はありかなしかという話だろう。
659 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 15:04:50.30 ID:QrmkumON.net] >>649 あっそうかwちゃんと読んでなかった ありかなしかで言えば「あり」としか言えない
660 名前:デフォルトの名無しさん [2016/09/09(金) 15:05:33.87 ID:G0RBn0pa.net] ビルトインにだって初期値必須のものがあるくらいでねえ そもそもなぜ初期値を指定するのかという目的論をすっ飛ばしたべき論に価値はあるのか
661 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 16:15:29.42 ID:iGJJBn3T.net] 最近、生のconstructorは晒さずに、面倒でもfactoryかbuilder用意したほうが良い気がしてきた。
662 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:00:44.85 ID:6P7ccOtX.net] >>651 そんなのあったっけ?
663 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:52:54.42 ID:Sz+zzzeN.net] >>653 参照
664 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:28:06.08 ID:xbXKfh8v.net] 複合型をビルトイン型と称すとは 頭の悪さに恐れ入る
665 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:54:51.32 ID:2SLUNITP.net] ビルトインをビルトイン型と見間違うとは 目の悪さに恐れ入る
666 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 20:18:37.35 ID:Sz+zzzeN.net] >>655 ビルトイン型って知らないけど Fundamental Types のことを言ってる?
667 名前:デフォルトの名無しさん [2016/09/09(金) 20:24:24.90 ID:G0RBn0pa.net] N3797でbuilt-inを検索すると... oeratorsが必ずついてくるな そりゃ悪かった class宣言せずに使える型、そう言いたかっただけだ
668 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 21:49:08.07 ID:Hwi6cA5k.net] const int i{100}; // 初期値必須
669 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 13:58:51.44 ID:qsgFq9Gu.net] 関数の引数と戻り値はstd::stringとかではなくconst char*を使うべきというのを見つけたんだけど正しいのか?
670 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:05:38.05 ID:fEVz11Vc.net] C++で作られたdll(関数が色々定義されてるやつ)をC++の別プログラムAに読み込ませる プログラムAに対してjavascriptで使用する関数を指定してってのをやりたいけどできるのかな プログラムAはただjavascriptを指定するだけと結果出力 javascriptはどの関数をどんな引数で実行するかを指定する スクリプトってのをよく理解してないからアドバイスほしい
671 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:15:01.34 ID:TwDosbdA.net] >>660 ソイツはバカ
672 名前:デフォルトの名無しさん [2016/09/10(土) 14:26:38.33 ID:pUoIS14d.net] >>660 fstreamをstringに依存させないために C++98ではopenの引数がconst char*だが C++11ではstringを渡せるようになったので fs.open((string(
673 名前:デフォルトの名無しさん [2016/09/10(土) 14:27:46.41 ID:pUoIS14d.net] fs.open((string("filename") + ".ext").c_str(), ios_base::in)が fs.open( string("filename") + ".ext , ios_base::in)で 済むようになり結構便利だね stdの作者じゃない一般ユーザな俺らにとって、 std同士での相互依存は別に構わんのに無駄に不便だったのがC++98 独善的な「正しさ」を誰も喜ばない例だと思うぜ
674 名前:デフォルトの名無しさん [2016/09/10(土) 14:28:54.01 ID:pUoIS14d.net] あ、引用符が閉じてない・・・ 許せ
675 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:03:47.79 ID:fxMjDbn4.net] 右辺値参照が使えるようになったし、クラスオブジェクトをそのまま返してもオーバーヘッドにはならんでしょ
676 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:40:19.15 ID:LBKbagU5.net] typedef enum { kOne = 1, kTwo, kN }e; const int n[kN]={0,100,200}; template <int N> class A { public: int a[N]; }; int main() { A<n[kOne]> a; return 0; } こんな感じのやりたんだけどnが非constだって怒られる なにか代案ありません?
677 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:45:26.68 ID:QhorBMPI.net] >>667 constexpr int n[kN]={0,100,200};
678 名前:667 mailto:sage [2016/09/10(土) 20:51:12.77 ID:fvQgZoM4.net] うちのVS2010ちゃんがそんなもの知らないと言っております
679 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:57:30.16 ID:QhorBMPI.net] >>669 template<int N> struct constant { static const int value = N; }; template<int N> struct n; template<> struct n<kOne> : constant<100> {}; template<> struct n<kTwo> : constant<200> {}; A<n<kOne>::value> a;
680 名前:667 mailto:sage [2016/09/10(土) 21:00:17.01 ID:fvQgZoM4.net] >>670 よさそう ありがとうございます
681 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 23:13:18.30 ID:LzJTocys.net] >>660 それはその言葉の真意を理解すれば正しくもあり正しくもなし
682 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:28:13.04 ID:bDOLl/8E.net] 引数はともかく、戻り値を常にconst char*にするのはつらい メンバ変数で持ってるものだったらconst char*で返せるけど 関数内でジェネレートした文字列だったらどうするんだ?
683 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:32:24.15 ID:bDOLl/8E.net] void func( char *output, int max_buffer ) ↑こんなインターフェースもあり得るけど 呼び出すときに一体バッファサイズをどのぐらい用意すれば良いんだ? という問題が出る 関数内でmallocして返す方法もあるけど 呼び出しもとで開放しなきゃならないから嫌だ std::string使いましょうよ
684 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:44:49.84 ID:T7xxiiqM.net] うちの会社にいるレガシープログラマもクラスを引数にするのを嫌うな
685 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:12:15.86 ID:NvSd/4YA.net] 税金泥棒は、RMPについて何も理解できていない 分からないくせに、ひたすらコピペを繰り返す 突っ込んだ話を始めると、チンプンカンプンで付いて来れなくなる
686 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:30:52.05 ID:Y3qTK8mc.net] gccはC++11のmoveとかつかわんでも、呼出側がスタックに用意したところに せっせと返値を書き込んでるのでクラスを返値にしたところでcopyとか余計なことはしないな。
687 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 06:19:48.63 ID:Cz5G8II8.net] コピーする必要がなかったかも知れないのにコピーしておいて余計なことはしていないとな
688 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 08:52:00.54 ID:uFO7Kr12.net] 返り血にmove使うと事態は悪化
689 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 10:11:38.91 ID:5FDuUIWg.net] 拭き取ろうと擦れば擦るほど赤く血塗られた範囲が広がって…。
690 名前:デフォルトの名無しさん [2016/09/11(日) 13:09:13.01 ID:QVUfpLVG.net] 特定の関数があるなしで呼び出す関数をわけたいのですけど方法はありますか template<typename T> void hoge(T val) { val.hage(0); } template<typename T> void hoge(T val) { val.husa(100); }
691 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 13:55:18.24 ID:KOEkGnWi.net] SFINAE使えばできる
692 名前:デフォルトの名無しさん [2016/09/11(日) 14:53:31.90 ID:h0ayt47M.net] コードではSSE命令をまったく使わず、コンパイラ最適化でSSE使ってもらいやすくする方法って どこかに書いてありますか?
693 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:31:44.83 ID:9/O5tJ2a.net] type_traitsのテストクラスばかり使っていたらSFINAEの書き方忘れた
694 名前:デフォルトの名無しさん [2016/09/11(日) 15:50:46.32 ID:hGR6Mbre.net] >>683 https://msdn.microsoft.com/ja-jp/library/7t5yh4fd.aspx
695 名前:デフォルトの名無しさん [2016/09/11(日) 22:14:42.57 ID:OIs9p1U8.net] void func( char *output, int max_buffer ) これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ 呼び出す側でintの範囲なら自由に決められるに決まってるだろ
696 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:19:35.02 ID:m0F7Ld2f.net] ↑アスペ
697 名前:デフォルトの名無しさん [2016/09/11(日) 22:20:45.93 ID:OIs9p1U8.net] いやいや、outputの最大値を一緒に渡すのは常識だろう
698 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:25:57.81 ID:2EFm3ZKd.net] 要するに、 char b[128]; func(&b[16],128-16); ってやって、特定の範囲で処理できるのも利点だろうといってるんだと。 あんまりやらないけど。
699 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:34:43.72 ID:T7xxiiqM.net] 文字列クラスでもできるけど
700 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:37:36.83 ID:2EFm3ZKd.net] substrだっけか?
701 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:38:54.98 ID:m0F7Ld2f.net] 『要するに』 超能力者>>689 のオツムが心配だ
702 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:40:38.21 ID:2EFm3ZKd.net] チガッテマスカ?
703 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:43:30.84 ID:m0F7Ld2f.net] >>693 >>689 の解釈は 『max_bufferで指定した範囲』 『intの範囲なら自由に』 という表現と整合しない。
704 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:45:10.47 ID:2EFm3ZKd.net] オーバーフローを指定するような間抜けなことをわざわざするんかいな。
705 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:46:59.51 ID:m0F7Ld2f.net] >>695 >>688 は「intの最大」でなく「outputの最大」と言っているのだが
706 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:48:58.46 ID:2EFm3ZKd.net] >>686 の頭にはなんか特殊用途でもよぎったんじゃね? 俺が懇意すぎたかな・・・。Orz
707 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:51:16.46 ID:m0F7Ld2f.net] 深い意味はない 単に>>674 を見て並んでいた単語に連想した自分の知識を反射的に書き込んだだけ
708 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:54:31.75 ID:2EFm3ZKd.net] 俺は>>686 ではない。それはそうかもな。 俺はC++ではstd::まで書くStl派なので、このところ生配列は使ったことがない。 というか、オーバーフロー怖くて使いたくない。
709 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:01:21.72 ID:67F7MmNh.net] 生配列を使ったことないってことはないだろ インターフェースにstlのコンテナとかを露出したらコンパイラ依存になっちゃうじゃん てか高速に処理したくてスタックに配列を積みたいときとかどうするわけ?
710 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:04:52.03 ID:2EFm3ZKd.net] 競プロ解いてるだけだから問題にならん。 まぁ、しばらく黙るわ。
711 名前:デフォルトの名無しさん [2016/09/11(日) 23:09:47.79 ID:OIs9p1U8.net] 俺が言いたかったのはだね、 void func( char *output, int max_buffer ) のようにchar *outputを渡すような時は、 バッファオーバーフローを防ぐために一緒にサイズも渡すってのが、 C言語での使い方では常識化してるって事だ。
712 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:12:11.14 ID:m0F7Ld2f.net] わざわざ補足しなくても そんなことはみんな知ってるから
713 名前:デフォルトの名無しさん [2016/09/11(日) 23:14:19.23 ID:OIs9p1U8.net] >>674 が変な事言ってたからだ
714 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:17:06.20 ID:67F7MmNh.net] 競プロでSTLコンテナなんて使うか?? アルゴリズムとかはそのまま使えるけどコンテナは普通生配列か必要に応じて自前の使うだろ?
715 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:19:39.01 ID:2EFm3ZKd.net] ガチ勢じゃないからね。 最近ではリングバッファほしい位で満足してるよ。 STLコンテナで解けないなら、アルゴリズムが悪い事が多い。
716 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:05.58 ID:m0F7Ld2f.net] >>704 >674の懸念は別に変じゃないぞ 変なのは>>674 を理解できなかったお前だ
717 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:10.89 ID:T7xxiiqM.net] >>700 規格準拠度が低いクソみたいなコンパイラを使わない
718 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:00.72 ID:m0F7Ld2f.net] どうしたいきなり >>700 も関係無いことを言いだして
719 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:32.77 ID:m0F7Ld2f.net] 誤 700も 正 700と
720 名前:デフォルトの名無しさん [2016/09/11(日) 23:23:32.91 ID:OIs9p1U8.net] >>707 いやいや、おかしいよ。 void func( char *output, int max_buffer ) を使うのにバッファを意識しないプログラムとかありえないだろ バッファがどのくらいか分からんのに void func( char *output, int max_buffer ) とか間違ってるだろ。 これCの使い方だぞ
721 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:28:22.83 ID:T7xxiiqM.net] >>705 競プロなんていうマイナー分野の話なんかしてないし 実行時間のほとんどはアルゴリズム依存なんだから1%未満のオーバーヘッドが影響するわけが無い 固定長配列はarrayを使うべきだし、動的にサイズを変えないといけない場合vectorでまとめて確保して普通のnewした配列として使えばいい 他人の競プロのコード見たら使いまくってるしな
722 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:39:10.29 ID:m0F7Ld2f.net] >>711 よくわかった >>674 の『バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る』 を単語レベルに近い連想で文を捉えるから珍妙な解釈になる レスを100回読み直せ
723 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:46:15.15 ID:M5lO5IQC.net] ID:2EFm3ZKdの背伸びが痛々しい。 このスレで一番出来ない子が何をいっちょまえにレスしてんだか…。 なぁーにが「競プロ解いてるだけ」だよド素人が。
724 名前:デフォルトの名無しさん [2016/09/11(日) 23:48:48.59 ID:OIs9p1U8.net] >>713 だからよ、 >バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る って言うような疑問がおかしいんであって、 void func( char *output, int max_buffer) はサイズを指定して使うもんだ。それ以外にあるかよ。 パターンもパターンやんけ。 バッファサイズがわからん状態で、、 void func( char *output, int max_buffer)ってのはあり得ないんだよ
725 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:49:06.36 ID:2EFm3ZKd.net] >>714 はっはー。おだいじんさまぁ〜。
726 名前:デフォルトの名無しさん [2016/09/11(日) 23:54:09.86 ID:IuKZJB78.net] >>715 別の関数で必要なサイズを返すのか? 変更が別スレッドだったら、さらにロック、アンロックの関数がそれぞれ必要になるな。
727 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:00:05.72 ID:JmiC7f4k.net] じゃー背伸びついでに言っとくわ。 その関数voidだから失敗したかどうかわからんから、バッファ入力サイズを推定できない。
728 名前: ドキュメント読め。 [] [ここ壊れてます]
729 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:03:56.69 ID:JmiC7f4k.net] チッ間に合わなかった。
730 名前:デフォルトの名無しさん [2016/09/12(月) 00:04:01.94 ID:GwVwE6OL.net] いやいや、 void func( char *output, int max_buffer) ってのは char *output に結果を返すんだよ。 そんなのもわからんのか。 max_bufferはオーバーフローを防ぐための物だ。 何を言ってんだ一体
731 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:29.54 ID:hz43BbCS.net] 例外使わないのか 初心者なのかレガシープログラマなのか
732 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:37.05 ID:Tu0jZEI4.net] >>715 その部分の日本語の理解が間違っているとわざわざ教えてやっているのに 他にどういう理解があり得るのかも考えずゴミレスを繰り返すとは アスペなだけでなくて荒らしのつもりなのか?
733 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:05:58.76 ID:JmiC7f4k.net] >>720 そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。 汚いと思う。 [] [ここ壊れてます]
735 名前:デフォルトの名無しさん [2016/09/12(月) 00:07:03.07 ID:GwVwE6OL.net] Cやってたらvoid func(char *output, int max_buffer)なんてパターンだろ。 基本中の基本だろ。
736 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:06.86 ID:JmiC7f4k.net] 染まってるのか。 まぁいいや。 黙るって言ったから黙る。
737 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:07.10 ID:WISOHly2.net] 723 : デフォルトの名無しさん 2016/09/12(月) 00:05:58.76 ID:JmiC7f4k >>720 そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。 汚いと思う。
738 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:36.24 ID:Tu0jZEI4.net] バッファサイズ指定の関数で溢れた時に例外をスローするのは珍しいな Visual C++の_s関数の配列オーバーロードはそんな仕様だった気もするが
739 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:38.22 ID:WIrRwO5G.net] >>715 https://msdn.microsoft.com/ja-jp/library/cc429127.aspx バッファサイズを指定できても、結果を正しく格納するのに必要なバッファサイズはわからない ってことはあるんだよ。
740 名前:デフォルトの名無しさん [2016/09/12(月) 00:11:17.09 ID:GwVwE6OL.net] void func( char *output, int max_buffer) これはさ、max_buffer以内で絶対に納めるって前提があるんだよ。 その為のmax_bufferだぞ。 max_bufferの指定が間違ったらエラーなんだよ。 他にどういう使い方あるんだよ
741 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:11:25.69 ID:XcxNhSoL.net] >>728 マクロでパスの最大規定されてる
742 名前:デフォルトの名無しさん [2016/09/12(月) 00:13:42.09 ID:GwVwE6OL.net] 結果を正しく格納するのに必要なバッファサイズが、max_bufferだろ。 char *outputのサイズがmax_buffeなんだよ char *outputがオーバーフローしないように、max_bufferを上限に処理をして、 char *outputで返せばオーバーフローしないって仕組みなんだよ。
743 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:14:04.49 ID:Tu0jZEI4.net] まさか>>728 のやさしいレスを見てもまだ世迷い言が続くとは これはホンモノだ
744 名前:デフォルトの名無しさん [2016/09/12(月) 00:18:26.76 ID:GwVwE6OL.net] おまえなにもわかってないだろ。 何ひとつ自分で説明してないだろ。
745 名前:デフォルトの名無しさん [2016/09/12(月) 00:21:57.49 ID:U6Ajls88.net] >>732 老害プログラマによくいる切り捨てられても気にしない、切り捨てによって発生したバグが確認されて初めてバッファーサイズをプログラム内の定数値で変更する人なんでしょ。 C++使ってるなら正しく処理する為には多大な面倒が発生する手法なんて使うなって事なんだけど老害にはそれが理解出来ないらしい。
746 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:22:27.92 ID:/3fOrQXc.net] max_bufferがあるからバッファオーバーフローを防ぐことが出来る 逆にmax_bufferが効果を発揮する状況というのは 結果を正しく格納するのに必要なバッファサイズがmax_bufferを越える時だ 従って>>731 の最初の行は間違っている
747 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:23:39.94 ID:XcxNhSoL.net] 最大値をどうすればいいのかって話でしょ 728の例だと別の場所で最大値は決まってる でもバッファサイズ3とか小さすぎると欲しい情報は帰ってこない 当然オーバーフローはしないけど
748 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:27:04.07 ID:feiUf+9B.net] バッファっていう概念がちょっとズレてんのかもな Cやってる人はコップでプールの水をすくうとき コップがバッファだ コップの大きさで回数を重ねてすくう コップを最大まで大きくしなきゃいけないとか 必要なコップサイズは、などとは考えない それがバッファ
749 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:28:34.40 ID:Tu0jZEI4.net] >>730 文脈を理解できない低能は去れ >>733 健常者なら『レスを100回読み直せ』で理解できると思ったので敢えて説明しなかった失礼 では説明してやろう <呼び出し側> vector<char> result(★); func ( &result[0], result.size() ); >>674 はこの★をどう決定するかが 呼び出し側コードを書く者の負担になると言っている
750 名前:デフォルトの名無しさん [2016/09/12(月) 00:28:41.75 ID:GwVwE6OL.net] だからよ、C++の使い方で void func( char *output, int max_buffer) を使おうとすれば、Cのバッファを意識する使い方以外に無いだろ。 それをストリングクラスの代わりに void func( char *output, int max_buffer) を使う手ももあるが、 バッファのサイズをどうするかが問題、とか言ってるから、 そういう使い方はしないし間違ってるって言ってんだろがよ
751 名前:デフォルトの名無しさん [2016/09/12(月) 00:30:38.58 ID:GwVwE6OL.net] void func( char *output, int max_buffer) これはよ、char *outputのサイズを意識しない限り、動かせないプログラムだよ このサイズが分からない時に、 void func( char *output, int max_buffer) を使うってのは無いんだよ それをあるって言うから、無いって言ってんだよ 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
752 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:35:45.75 ID:XBLhc0H+.net] >>740 一旦これだけは言っておくが おまいの言っていることは正常でしかもごくあたりまえのこと おそらくその点を繰り返す必要はもうないし そのことはみんな分かってる 読み込む前にサイズ分からないものがあるよね? そのときは固定サイズじゃ読み込めないよね、 的なことをおまいの相手は繰り返し言ってるんじゃないか? 配列に対するベクタの利点みたいな部分を言いたがってる気がする
753 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:40:53.14 ID:XcxNhSoL.net] 最大値がどっかで決まってるか、outputにヌルいれると必要なサイズ返るとかが普通じゃね その関数だけじゃ必要なサイズがわからんというお話 パスが欲しいのにバッファ小さすぎてドライブレターだけ返ってきても意味無いわけで
754 名前:デフォルトの名無しさん [2016/09/12(月) 00:43:58.37 ID:GwVwE6OL.net] void func( char *output, int max_buffer) を使う前にはサイズを把握してないと駄目ってだけだよ。 それが把握できんのにこういうCライクな使い方は間違ってるって俺は言ってるだけだよ
755 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:47:09.50 ID:hz43BbCS.net] C言語的なインターフェイスは不便だからC++らしく書きましょう
756 名前:デフォルトの名無しさん [2016/09/12(月) 00:47:23.61 ID:U6Ajls88.net] >>743 格納サイズを把握してたらmax_bufferなんて要らなくね?
757 名前:デフォルトの名無しさん [2016/09/12(月) 00:51:26.47 ID:GwVwE6OL.net] >>745 いやオーバーフロー対策の最大値だから 引数で明示的にサイズを渡しましょうって取り決めだ
758 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:02:10.22 ID:Tu0jZEI4.net] >>743 の達した結論が >>674 とほぼ同じに思えてならない
759 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:10:30.26 ID:hz43BbCS.net] いまさらそんな40年前からある常識を言われも困る
760 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:13:36.21 ID:WIrRwO5G.net] >>730 >728 で挙げた MSDN のページにそんな規定は見当たらないんだけど、どこ見て言ってるの? MAX_PATH の類のことを言ってるなら、よくある勘違いだろうと思うんだ。 https://www.google.com/search?q=GetModuleFileName+MAX_PATH d.hatena.ne.jp/satosystems/20100807/1281152224
761 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 06:52:52.36 ID:y21Asc3i.net] MAXPATH があてにならんのは確かだが サイズ取得せずにリトライするのもダメ臭が
762 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 08:08:53.69 ID:46mLPt5D.net] 書き込んだサイズを返すくせに必要なサイズを 調べる機能が規格に無いstd::mbstowcsはクソ
763 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:10:27.05 ID:HZgwCDH3.net] プログラミングのコードを書く時のタブvsスペース戦争がついに決着 www.gizmodo.jp/2016/09/tab-vs-space.html www.gizmodo.jp/images/2016/09/160901coding2.jpg www.gizmodo.jp/images/2016/09/160901coding3.jpg
764 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:38:06.48 ID:y21Asc3i.net] 優れたデータから生まれるクソ同然な解説
765 名前:デフォルトの名無しさん [2016/09/12(月) 10:27:38.72 ID:CKtP/5ek.net] おまえTAB派かw
766 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 11:33:25.20 ID:+YsVO5lS.net] タブスペース混在で起きる問題とは?
767 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:31:33.38 ID:ZblQazo2.net] タブ幅が決まってないのが一番の問題だな。2,3,4,8みんなバラバラ。
768 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:20:51.17 ID:s5J5+4ba.net] pythonが致命傷を負う
769 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:57:05.61 ID:x7GAwvaf.net] >outputにヌルいれると必要なサイズ返るとかが普通じゃね 必ずしもそれが有効かどうかわからないから困る 必要なバッファサイズを取得してから実際に文字列を取得するまで 関数を二回呼び出す必要があり
770 名前:Aここに時間差があるのが問題 マルチスレッドで問題になる 取得したバッファサイズは既に古い情報になっている可能性がある これを解決するにはLockするしかない obj->lock(); size_t buffer_size = obj->func( nullptr, 0 ); std::vector<char> output( buffer_size ); obj->func( outputr.data(), output.size() ); obj->unlock(); こんなコードはまさに糞であるということ しかも、lock、unlockをし忘れても、たまたまのタイミングの物で、そこそこ動きそうというのが怖い つまり、ほんの短い期間の間に、文字列が更新されて取得したバッファサイズが無効になるほうが珍しいだろう しかし、ありえないことではない 1000回に1回だけ失敗するというのが一番怖い これに比べれば、関数内でnew char[]して返すほうが、まだいくらかマシに思えるぐらい しかしこれをやると、帰ってきた文字列は自分で開放しなければならないのか あるいは開放してはダメなのか、解放関数はdelete[]なのかfreeなのかあるいは別の専用関数なのか ということが関数ごとにマチマチになり、非常に煩雑になる std::string output = obj->func(); のほうが断然良い、誰の目にも明らか、短い、シンプル lock、unlockを呼び出し元が保証しなければならないのは良くない 必要な処理が一発の関数呼び出しでキマるように設計すれば、同期処理はobj内に隠蔽できる こちらのほうが良い 単に文字列取得するだけでlock、unlockが必要というのは狂気の沙汰 >>700 のような特殊な場合を除いては、ね [] [ここ壊れてます]
771 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 15:42:12.58 ID:tjH2oYJX.net] ってか void func( char *output, int max_buffer) なんてI/Fを書いちゃってることが問題なんじゃねーの? これでなんとかしようって考えたって生産性ないし
772 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:16:50.47 ID:ZblQazo2.net] cのIFだから古臭いのはしょうがない。 効率悪くなってもstd::string吐くようにラップして二度と触らないのが吉。
773 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:45:03.11 ID:+C5a7cGR.net] void func( char *output, int max_buffer) これ、ニワカが作ったダメな見本 普通 size_t func( char *output, size_t max_buffer)
774 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:01:45.51 ID:2Vwoh4uN.net] ゴミが得意気に難癖つけてて笑える
775 名前:デフォルトの名無しさん [2016/09/12(月) 17:58:57.32 ID:KCLSxXC3.net] 同じ意味じゃんw
776 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:06:15.51 ID:5/ctHFsj.net] マルチスレッドのリテラシーも無いのにクソみたいな長文をドヤ顔で貼り付ける>>758 が哀れで仕方ない 2回のfnucの呼び出しの間にバッファーが変更される状況では単独の呼び出しすら破綻していることが理解できないらしい
777 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:13:03.76 ID:Brz5tLm8.net] 彼に限らず何らかの問題意識を訴える子が なぜか突然マルチスレッドを絡めてくるのはもはや伝統芸 そして一通り話を聞いてみると 「そうだね、排他だね」としか言いようがないことも毎度
778 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:27:11.87 ID:x7GAwvaf.net] std::string output = obj->func(); の場合、funcの中で排他処理をしていれば、呼び出し元は排他処理について気にしなくてよい アトミックな操作ということになる 文字列の取得にかかわらず、アトミックが期待される処理は 分解せずに一つの関数で実現すべきである personオブジェクトの取得なら、person = obj->get_person(); とすべきであり person.set_name( obj->get_persion_name() ); person.set_age( obj->get_persion_age() ); のように分解してしまうとアトミックでなくなるから、やはりロックが必要になる 外からオブジェクトをロックする、そういうI/Fをobjに用意するということは 何時でも何処でも好き勝手にロックできるというわけで 使い方を誤るとデッドロックを引き起こす可能性がある ロックの順番はクラス設計者が明確に管理し、隠蔽すべき さて、文字列取得を二つの関数に分けて行うとアトミックな操作でなくなるから 呼び出し元で排他処理をしなければならなくなる obj->lock(); size_t buffer_size = obj->func( nullptr, 0 ); std::vector<char> output( buffer_size ); obj->func( output.data(), output.size() ); obj->unlock(); これは非常に面倒なので君らは直ぐにでもstd::stringを返すラッパーを書く そうすれば結局同じことになるので、初めからstd::stringを返せばよい もとより文字列の取得はアトミックであることが期待されるわけだから 一回の関数呼び出しで行うのが筋である
779 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:43:38.31 ID:5/ctHFsj.net] 一生懸命考えた結果がコレか? 呼び出し側が自らコンカレントな使い方する前提でロック必須と言われてもねぇ その内vectorのremove&eraseイディオムにも排他が必要で狂気の沙汰とか言い出しそうだな
780 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:44:31.77 ID:x7GAwvaf.net] どれだけの処理を一つの関数で行うべきかは どこまでの処理がアトミックと期待されるか、による 文字列の取得はアトミックであることが期待されるので 一つの関数でアトミックに実行すべき、となる 場合によればアトミックの範囲がもっと広がることもある 例えばpersonの情報が欲しいとき、名前と年齢を別々に取得するのはよくない 名前の取得と年齢の取得のそれぞれが独立して排他処理してあって正しく動いたとしても 全体として名前と年齢のペアが一致しなくなる可能性があるから だからこの場合、personの情報は一つの関数呼び出しで行い、アトミックである必要がある なので、一つの関数で実行すべきこと、アトミックに実行すべきこと、は 文字列の取得なんかよりは大きな範囲、粒度になることはある 大きくなることはあり得るということ が、間違っても、文字列の取得などというプリミティブな処理を バッファサイズの取得と文字の取得の二つに分割したほうが良い とはならない
781 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:50:01.82 ID:x7GAwvaf.net] >>767 >必ずしもそれが有効かどうかわからないから困る と書いた通り、すべての場合とは言っていない 困る場合があるといっている そして、困る場合での話である
782 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 19:40:26.75 ID:5/ctHFsj.net] なるほどつまりは>>765 だな この論法は非constメンバー関数を使ったイディオムに広く使えそうだ 「〜って普通だろ?」 ↓ 「必ずしもそれが有効かどうかわからないから困る(長文略)」
783 名前:デフォルトの名無しさん [2016/09/12(月) 21:04:54.81 ID:U6Ajls88.net] >>767 呼び出し側だけとは限らんでしょ。 非同期でデータメンバーを更新しつつ、更新通知をだすクラスとか
784 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 22:29:31.42 ID:2Vwoh4uN.net] 一発でstringやらvectorで返すなら常識的に言ってロックは必要ないわな 何話してるのか分かってない奴が力んでるな
785 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 23:29:00.60 ID:3LkOVCr7.net] タブ幅は8である。但し、一度タブキーを叩くと4つのスペースが入る 但しそれで8つのスペースとなるときはそれを一つのタブに換える
786 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:03:18.93 ID:ZWXE0Cz9.net] いやタブとスペース混ぜるのは論外でしょ
787 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:39:27.54 ID:UjtLBJZw.net] 混ぜると誰かがコード整形したときに全部差分に出るから邪魔
788 名前:デフォルトの名無しさん [2016/09/13(火) 00:51:46.06 ID:nTkG/AQ9.net] >>772 そんな事でロックが必要かどうか決まらないと思うが何を言ってるんだ?
789 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 01:06:54.89 ID:TGJSQl0M.net] VZエディターとか混ぜてたな
790 名前:デフォルトの名無しさん [2016/09/13(火) 01:20:10.44 ID:7Uxx8QPD.net] 基本的にインデントが何段階も必要な入れ子はよくない 許容範囲は2つまでだな
791 名前:デフォルトの名無しさん [2016/09/13(火) 02:29:06.46 ID:qRIDBJHy.net] 論点がずれてんじゃんw
792 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 04:10:18.62 ID:ifCWTkZq.net] >>775 差分取るときホワイトスペース無視すればいいだろ
793 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:08:48.43 ID:E9px3zRx.net] std::get_temporary_buffer ってなんであんなクソ仕様で作ったの
794 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:14:57.49 ID:ifCWTkZq.net] それ知らんかったけどクソだからC++17でdeprecatedになるのか
795 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:08:31.21 ID:fa0Yw14i.net] 引数の異なる関数を関数テーブルにまとめる方法ヘルプミー
796 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:11:36.75 ID:jvr3tDVu.net] 型が違うから難しくね?同名でオーバーロードするんじゃだめなんかい。
797 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:21:28.20 ID:6YUjJJm0.net] テーブルの別の要素で引数と返り値の型を記憶しておき、任意の関数ポインタ型にreinterpretして保存 呼び出し時は記憶した引数と返り値のの型に対応する関数ポインタ型にreinterpretしてから呼び出す。
798 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:56:45.02 ID:BC6G6r/f.net] >>783 それどうやって使うつもりなの?
799 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:09:28.64 ID:LgTr6ZxA.net] >>785 やはり別物で統一して記憶させるしかないか… 要は入れてから後にキャストだよね >>786 関数群30ぐらいあるからそれを管理しやすくしたい 別にenumで関数名入れておくのと 関数名に対応したインデックス拾ってくる関数を用意しておいて 後に使いやすく
800 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:11:50.46 ID:jvr3tDVu.net] 酷い設計って言っていい?
801 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:20:36.44 ID:BC6G6r/f.net] >>787 > 後に使いやすく ごめん、全然使いやすくなるイメージがないんだが... 単にまとめときたいだけならクラス作って静的メンバ関数でいいような気がするし
802 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:29:56.17 ID:LgTr6ZxA.net] >>789 関数名を別ファイルから取り出して動的に動かすためにはこれしかなかった まとめておいてプログラム内で処理ならそれで良いけど 今のところそうなってるからそれに会わせるしかないんだ
803 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:32:38.69 ID:jvr3tDVu.net] 可変長引数取る関数内でスイッチするのと大差なさそう。
804 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:33:59.57 ID:Dh1MHapU.net] >>791 はぁ??
805 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:39:26.37 ID:LgTr6ZxA.net] >>791 結局どこかで分岐処理によるキャストするからほぼ変わらん気もする これに関連する話だけど int (*func)(void*)みたいな関数ポインタがあって 引数二つにするにはどうやってキャストしたら良いんだろうか
806 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:43:25.81 ID:kwiFGb/T.net] まず関数の型をtypedefしようぜ。
807 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:47:38.13 ID:GD/RUd4Y.net] windows のマクロまみれのメッセージディスパッチと同じようなことじゃろ
808 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:57:44.86 ID:jvr3tDVu.net] ideone.com/BWJoEi こういう感じのこと思いついたけど、できんかった。テヘペロ。 関数複製するんだから通ってほしいなぁ。 なんかテンプレマジックで通らんかなぁ。
809 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:02:38.95 ID:jvr3tDVu.net] これができたら、ファクトリーメソッドがパラダイス。
810 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:51:20.93 ID:jvr3tDVu.net] 特定の型のパラメータパックってできなかったっけ? Anyのパラメータパック食わせれば解決するんだけどなぁ・・・。
811 名前:デフォルトの名無しさん [2016/09/13(火) 11:14:43.16 ID:nTkG/AQ9.net] やりたいことにたいして少し大仰だが、Boost.Pythonのようなものでインタプリタからどうやって型安全に関数を実行してるか見たら少しは参考になるんじゃない?
812 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:49:03.21 ID:BC6G6r/f.net] >>790 > 関数名を別ファイルから取り出して動的に動かす なら初めからそう書いてよ 使いやすさ云々じゃないじゃん 関数名を特定するのはいいけど引数は関数毎にバラバラなんでしょ? 結局どこかで分岐が必要な気がする それとも引数は Variant みたいななんでも入れられる変数の配列にしてしまうとか
813 名前:デフォルトの名無しさん [2016/09/13(火) 17:00:07.27 ID:dUelqKgA.net] >>783 #include <functional> double foo(double x) { return x; } int bar(int x) { return x; } int main() { std::function<double(double)> table[2]; table[0] = foo; table[1] = bar; }
814 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:18:50.00 ID:LmZnag12.net] >>801 コードサンクス ただこれはintとdouble型に対してだからできるんじゃないのだろうか >>800 そういうことだね だからどこかでキャストし直す必要がある…はず あらかじめどこかにパターンを定義しておいてそれはもうスイッチ文に頼るしかないかなって考えてる
815 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:20:35.88 ID:LmZnag12.net] >>797 俺もパラダイスを目指している Cならエラー出ずにできるみたいなんだよね C++でxmlをjsonにパースしたり jsonを簡単に読み込む方法ってあったっけ? ないならC#も考えないとな…
816 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 19:01:39.86 ID:bDDPvjQm.net] 実行時に文字列を比較して分岐することのどこにパラダイスを見いだせるんだよ
817 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 20:22:41.37 ID:BC6G6r/f.net] >>803 調べてないけどライブラリぐらいあるんじゃね?
818 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 21:57:21.43 ID:7T7m5n2i.net] 質問です。 placement newの関数の宣言と定義はどこに書くのが正解ですか? よろしくお願いします。
819 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:04:54.99 ID:6F1+hrdF.net] >>805 picojsonとやらを使ってみた 便利なんだけど配列二つあると積む現象が起きてしまった…
820 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:23:58.73 ID:eOd6ZBDo.net] jscriptで読めるから WSHでアプリで実行
821 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:34:06.63 ID:7T7m5n2i.net] ReactOSというOSの開発をしています。 ヘッダー<new>と<crtdbg.h>のnewの宣言が衝突していて、<new>が使えません。 どうしたら正しく配置newが使えますか?
822 名前:デフォルトの名無しさん [2016/09/13(火) 22:52:09.89 ID:7Uxx8QPD.net] 自分のソフトの販売権がカシオが取得とかねつ造してたやつだ
823 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:59:05.82 ID:7T7m5n2i.net] わかりました。ReactOSのSTLかCRTのコードが間違っているということですね。 配置newは<new>をインクルードしたら使えなければおかしい。
824 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:06:52.68 ID:7T7m5n2i.net] 自分の商品の販売権をどう決めようが勝手でしょう。会社名を出したのは悪かったが。
825 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:08:15.35 ID:jz2gr8q/.net] ライバル会社かなにか?
826 名前:デフォルトの名無しさん [2016/09/13(火) 23:15:36.33 ID:7Uxx8QPD.net] >>812 おまえカシオが権利を所有とか書いてたんだろ カシオと専売契約交わしたみたいに書いてたろ カシオが知らんと思うてか
827 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:21:08.73 ID:7T7m5n2i.net] >>814 誤解です。メールで交渉中でした。
828 名前:デフォルトの名無しさん [2016/09/13(火) 23:29:04.40 ID:7Uxx8QPD.net] >>815 うそつけこら。おまえがメール送ってただけやろが。 往生際が悪い。全部バレとんねん 狭い業界でごまかせるとおもうなよ
829 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:33:01.44 ID:7T7m5n2i.net] すみません
830 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 00:03:18.61 ID:3NkcLiKm.net] 反省してます
831 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 01:01:49.61 ID:QlIAHX1m.net] なんやなんや
832 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 02:49:36.41 ID:Xhtlj9Sh.net] マトラボスレ勢いなさすぎ。 誰かイコライザのコーディング教えてくれや
833 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:15:05.48 ID:Pl2/S2ti.net] イコライザってなに?
834 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:18:25.05 ID:EjX8GKMV.net] 信号処理
835 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:53:21.14 ID:qczVS6OA.net] FFTか。言葉しかしらん。
836 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 04:57:26.35 ID:8Y7m8SBN.net] 高速フーリエ変換か
837 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 08:16:10.34 ID:58JMlqKS.net] placement newの関数を自分で書く素振りを見せながら newをインクルードとか、何言ってんだか。 標準ヘッダーが衝突するなら処理系作った奴に聞け
838 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/14(水) 11:33:48.49 ID:3NkcLiKm.net] >>825 ありがとうございます。
839 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:34:08.81 ID:O92aoqkR.net] CppUnitによるテストって登録件数が多くなった場合…なんとかならんもんかね 1000を越えるとかマジで嫌なんだが
840 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:59:00.04 ID:EjX8GKMV.net] 何が嫌なんだ 時間がかかるってことなら分割したらいいじゃないか
841 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:15:10.96 ID:O92aoqkR.net] >>828 コードがめっっっちゃ汚くならね? 1000個テストするなら1000行似たこと連続で書くんでしょ?
842 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:27:01.68 ID:EjX8GKMV.net] >>829 テストコードも名前を付けてモジュール化すればすれなりに見やすくはなるんじゃないか どこで何のテストをしているか見つけやすくなるし
843 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:57:41.83 ID:C1VR7bWr.net] >>830 ファイル分割するってことだろうか?
844 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 00:14:31.25 ID:SldeaLfO.net] 別にそれCppUnit 固有の問題じゃねーじゃん。 お前のテストコード作成全般の問題だろ。
845 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 01:28:50.14 ID:NSWALpAD.net] >>829 「似たこと連続で」ならマクロでも何でも使ってまとめりゃいいだろ。
846 名前:デフォルトの名無しさん [2016/09/15(木) 06:31:33.82 ID:eCorjc8D.net] ideone.com/VtKz07 nonbiri-tereka.hatenablog.com/entry/2014/06/25/093327 を見て勉強中なのだが、 なぜ、test_addでaddをラップしてるのかがわからない addに引数を持たすことが出来ないのか。 また、addの足し算が引数をaが1-100だった場合、今の俺では100個記述することになる マクロを使用とかすれば解決できそうだけど、適切に使う方法が思いつかないんだ… 外部ファイルとかからの読み込みでも良いので何かしらヘルプ・・・・ void FunctionTest::test_add(){ CPPUNIT_ASSERT_EQUAL(3+2,func->add(3,2)); } この部分を何個も書いて CPPUNIT_TEST(test_add);//メンバ関数の登録ってのを CPPUNIT_TEST(test_add);//メンバ関数の登録 CPPUNIT_TEST(test_add1);//メンバ関数の登録 CPPUNIT_TEST(test_add2);//メンバ関数の登録 .....となってしまう
847 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 08:43:36.54 ID:wjxOqoMl.net] コンパイル時と実行時の違いがあるから直接指定はできないよ。 lambdaとかbindでいけんじゃね?試してないけど。
848 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 09:20:50.32 ID:Dfv6m4lx.net] 凝ったことをした挙句テスター自体にバグ仕込んでテスト無効とか馬鹿らしいから 1回きりと割りきってシンプルに書くという考えもある
849 名前:デフォルトの名無しさん [2016/09/15(木) 10:13:14.67 ID:dJJn2WBE.net] template<typename...Args> void hoge(Args...args){} hoge({1,2,3}); としたら hoge(std::initializer_list<int>) のように推論して欲しいのですが何故できないのですか
850 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:40:36.62 ID:krf6YZ+h.net] ideone.com/zJhotB
851 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:41:24.48 ID:krf6YZ+h.net] 投稿を暴発してしまった。 自動では推論してくれないみたいだねぇ。なんでだろう・・・。
852 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:05:17.34 ID:OOrl8bCH.net] 勝手に変換されても困るべ
853 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:06:02.66 ID:qnepHcI/.net] C++PRIMER 5TH KINDLE版でシコシコするのはどう思いますか。 尼ではさっぱり人気がないようですが。
854 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:40:29.83 ID:gyul79OX.net] あの手の本は意味がないよ どんだけ、言語の仕様に詳しくなっても何の得にもならんからな
855 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 19:22:13.92 ID:BBoNUH+R.net] 熱い江添批判
856 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:08.11 ID:95/CUQAP4] おっと江添の悪口はそこまでだ
857 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:39.04 ID:axqGMSjf.net] おっと江添の悪口はそこまでだ
858 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:59:53.90 ID:XkA1sBZN.net] 少なくとも言語仕様を把握してない奴にライブラリは作って欲しくない
859 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:49:37.24 ID:7lTxlp13.net] つまりハゲはライブラリ作るな
860 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:50:15.59 ID:umQizf+V.net] 言語仕様が げんこつ塩ラーメン に見えた ちょっと夜食食ってくる
861 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 06:27:51.21 ID:nhdK38ZD.net] 「言語仕様」→「げんごしよー」→「げんこつしおらーめん」 漢字の視覚情報として入力されたパターンを、 脳内でいったん音声情報に変換してから似た言葉に錯誤したのね。 俺の認識手順と違うみたいなので理解するのに手間取った。
862 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:23:14.79 ID:1ml378Vd.net] >>849 言語仕様の後にライブラリのラだけ見えたからさらに連想を促進した
863 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 09:43:39.74 ID:wscqtQV8.net] おまえらハゲを敬え
864 名前:デフォルトの名無しさん [2016/09/16(金) 10:02:58.29 ID:q1C1+fLl.net] dnaimg.com/2011/06/07/personal-rocket/img_001.jpg
865 名前:デフォルトの名無しさん [2016/09/17(土) 19:36:33.08 ID:/lrAuukn.net] ハゲ(笑)
866 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 20:17:46.81 ID:n9MPs/HW.net] ハゲが世界の技術を支えてる
867 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:04:19.65 ID:5e40+2Z7.net] VSのリードプログラマもハゲだな
868 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:05:00.62 ID:+iC0HZAY.net] ハゲが好きだなお前ら
869 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:23:27.97 ID:+IdphFbB.net] ハゲは絶倫!
870 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:45:36.25 ID:5e40+2Z7.net] 質問なんだけどnewするとき例外処理する人はvectorとかでpush_backする時も毎回tryしてんの?
871 名前:デフォルトの名無しさん [2016/09/18(日) 02:44:35.25 ID:9+5kS6ok.net] してると言えばしてるけど、多分君の思ってる感じではしてない。
872 名前:デフォルトの名無しさん [2016/09/18(日) 02:48:48.02 ID:9+5kS6ok.net] 例外は例外的にしか発生しないので、層の上の方の集約するポイントでcatchしてる。 あんまり細かくやっても意味ないしハゲる。
873 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:18:08.82 ID:+iC0HZAY.net] つーか、例外発生する可能性のある箇所でcatchしないとかないでしょ
874 名前:デフォルトの名無しさん [2016/09/18(日) 03:29:47.07 ID:L03d0R0a.net] あまり細かい事気にしてるとハゲるよw
875 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:43:50.19 ID:1yHXSEjx.net] 問い1「newするとき毎回try catchするバカはvectorのpush_backもtry catchするのか?」 答え「している可能性あり」 問い2「newするとき毎回try catchするバカは非noexcept関数の呼び出しも毎回try catchするのか?」 答え「バカの行動は一貫性が無いのでしていないだろう」
876 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:12:03.01 ID:CEGgaeCy.net] // Aをnewしてveにpush_back // push_backは落ちないようcatchのおまじない必須 try { ve . push_back( new A( new R(), new S() ) ); } catch ( ... ) {}
877 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:50:42.33 ID:EIh/dcA1.net] そんな基本的なコンテナのエラーを、catchしても、 プログラマーが回復させることは出来ない 強制終了されるままにしておいた方がいい 下手すれば、エラーログに書き込む際、さらにエラーが起きるかも
878 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 05:42:12.02 ID:+IdphFbB.net] クラスの型が一致しなくてcatch出来なかった例外は一体何処へ吹っ飛んでいくのだろうか…
879 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:02:09.25 ID:+jQZdVYD.net] NULLチェックしろよとチェックツール使った品質チームが指摘してくるんだが、そもそもnew失敗したら例外になるからNULLチェックまで来ねーだろ、お前のチェックチーム馬鹿すぎだろって突っ込みを誰もしないで数年
880 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:29:33.73 ID:CQAObZ4Q.net] バカってなんでnewしたがるんだろう
881 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:44:28.23 ID:xYSNtktv.net] >>867 チェックツールが古い仕様向けに作られているのだろうか。 newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ。 指摘を聞き流すだけでなく、チェックする部署の人に ツールのバージョンだか設定だかを現状に合うように改めてもらったら?
882 名前:デフォルトの名無しさん [2016/09/18(日) 08:41:57.71 ID:TydQpzdL.net] pimpl = new impl; if(pimpl == nullptr) []()[[maybe_unused]]{throw std::bad_alloc();}();
883 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 08:48:34.25 ID:2blUzsBI.net] c++ は最新仕様だけ覚えていればいいってもんではない。
884 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:21:00.65 ID:/1FlYzFJ.net] >>868 make_uniqueはコンストラクター引数の補完が働かないので使いづらい
885 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:22:05.47 ID:6SQSBv8I.net] 仕様だけは詳しいが、実務は全くできない奴いるなw 正直最新の仕様なんかについてうんちく垂れるより、古い仕様でもきちんと動くほうがいい。 中には、よくわからずに使って、はまって納期遅れさせるバカもいるwwww
886 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:33:08.57 ID:1yHXSEjx.net] 日本語が理解できずに話をすり替えてしまう>>871 みたいな低能や 例外処理の基本も理解できていない>>865 みたいな低能が その品質チームとやらにいるんだろう
887 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 10:19:05.24 ID:EIh/dcA1.net] new にも、NULLを返すバージョンと、例外にするバージョンなど、色々あるんじゃね?
888 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 11:18:56.17 ID:WPlu++Kc.net] 例外処理って目的によって異なる 素直にシステムがエラー吐いて終了で問題ない場合 特定のエラーを検出して改善の為のログを残したい場合 止まると困るシステムの場合十分なリカバリー手段を用意して例外検出と復旧処理を行う 通常のアプリケーションにnew なんて使わないって書いてあったけど プログラムの目的とエラーに対する必要な強度を仕分けして 全体としてどの様に例外処理を組み込むかって事だよね
889 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:08:31.95 ID:5e40+2Z7.net] やっぱりC++って集団で使うのには向いてないんだよね どのC++の話してるか分からないか
890 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:09:15.23 ID:EIh/dcA1.net] ゲームエンジンの本には、自分でメモリプールを作っている例が、よく載っている newをその都度呼ぶと遅いから、まとめて何十個分のメモリを確保する。 そしてその中から、今使う分だけを使う でも、それぐらいの機能、既に誰かが、ライブラリを作っていそうなもんだが
891 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:14:46.13 ID:/A9gXhFE.net] boost.pool
892 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:42:48.66 ID:5e40+2Z7.net] もちろんメモリプールなんてたくさん出回ってるし今度標準にも入る でもそれらの性能が十分とは限らない
893 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:43:41.47 ID:Qq7O8IvU.net] 昔、lokiとかあったやん? 使ったこと無いからしらんけど あれにもメモリプールなかったっけ
894 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:03:20.15 ID:vvzKkhQt.net] >>869 えええええええ いつからそんなクソ仕様になったん… 例外じゃないのか
895 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:26:11.91 ID:vvzKkhQt.net] と思ったけどC++て全部チェック例外だっけ newのたびにtryさせられるよりsegmentation faultのほうがマシだな
896 名前:868 mailto:sage [2016/09/18(日) 16:16:16.34 ID:xYSNtktv.net] >>882 勘違いさせたならすまん。>>869 で書いた 「newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ」 っていう方が古いC++でのnewの動作ね。 古いチェックツールがそんなエラーを返してるんじゃないの? という意図。 現在はnewの失敗は例外が返るのがデフォルト動作だよな。 nothrowで例外を出さないように指示したら今でもnullptrが返るけど。
897 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:24:41.60 ID:ygUqx6Ix.net] >>883 C++は全てjavaでいう非チェック例外じゃないの?
898 名前:デフォルトの名無しさん [2016/09/18(日) 16:45:14.01 ID:/VzCUPpk.net] お前らの例外話は何故いつもnewなのか
899 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:36:57.68 ID:5e40+2Z7.net] newにおける例外の扱いのベストプラクティスが示されていないから
900 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:37:48.57 ID:+iC0HZAY.net] ないものは自分で見つけんだよ
901 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 18:15:15.56 ID:sUrpOA8l.net] ひょえー
902 名前:デフォルトの名無しさん [2016/09/18(日) 18:28:35.89 ID:L03d0R0a.net] うはー
903 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:43:10.68 ID:1yHXSEjx.net] >>886 newを見るとすぐtry catchで囲わないといけないと妄想してる882みたいな低能が多いからでは? catchを見ると「近くにnewが有るはず」と脊髄反射したに相違ない
904 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:45:44.60 ID:XW30Cfu8.net] それよりもnullチェックってどうやるのがスマートなんだ? 使ってるvector全部をif文にぶち込んでるコード見かけて驚愕したんだが
905 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:00:16.67 ID:aEHfUxVO.net] vectorに挿入する前にチェックすればいい
906 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:06:12.23 ID:5e40+2Z7.net] 一部の用途を除いてnewが失敗する可能性は考えなくていい
907 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:15:21.06 ID:sUrpOA8l.net] 説明願います
908 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:23:31.21 ID:ORSLx8xU.net] VBのCSV出力が遅いんだけど Cで書いたら速くなんの?
909 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:02:18.86 ID:aveOgqLD.net] むしろその手の処理はVBの方が速い
910 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:04:42.68 ID:aveOgqLD.net] >>885 んなこたーない [] [ここ壊れてます]
912 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.38 ID:d/dsjAXw.net] >>896 文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
913 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.43 ID:d/dsjAXw.net] >>896 文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
914 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:51:32.58 ID:0BKQBe6K.net] かなり大事な事ですねw VBとかC#で遅いからといってCやC++にしたところで劇的に速くなる保証なんかないのにな 何の言語にしようがどうしようもないか自分の組み方がおかしいかどちらか
915 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:10:11.98 ID:fA1B/38Y.net] >>896 ファイル出力が遅いのかテキストの組み立てが遅いのか
916 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:15:05.33 ID:3VQNeREi.net] VBのCSVライブラリ使ってるなら、 規格(?)に準拠するようにいろんな処理してるから かなり遅いっぽいぞ エスケープが要らないとかダブルクォーテーションが要らないとか 条件を限定できるなら高速化の余地もあるんでないかい
917 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:17:08.06 ID:MZBT2IFS.net] >>899 >>902>>903 おまえらこのスレで面倒見るつもりなのw?
918 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:50:10.96 ID:urF+pqo3.net] むしろ同じロジックでコードを書いて比較してほしい。
919 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:55:07.34 ID:80/BHnqI.net] アルゴリズムの選択を誤ればJavaにすら負ける 大事なのはアルゴリズム
920 名前:デフォルトの名無しさん [2016/09/19(月) 20:12:40.99 ID:sZXP+7ot.net] Javaで適切なアルゴリズムを使うPGと同一人物が C++で不適切なアルゴリズムをわざわざやるかよ 同一人物が使ってどっちが優れた結果を出せるかだろ
921 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 21:10:21.81 ID:urF+pqo3.net] ここではアルゴリズムってよりライブラリ依存だな。 CSVのパースは真面目にROC準拠でやろうとすると頭が禿げるぐらい面倒くさい。 現実に扱うCSVはもっと前提条件を少なくできるだろうから、 自分で簡易版のパーサーを実装した方がいいかも。
922 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:22:17.19 ID:aveOgqLD.net] ROCってのが何なのかわからんが RFC 4180なら所詮ワンパスなのでそんなに難しくない。 C#で自作したものをブビライブラリと比較したら10倍程度の速さだった。 どうせTextFieldParser使ったんだろ
923 名前:デフォルトの名無しさん [2016/09/19(月) 22:40:37.56 ID:Kz778z8P.net] CSVなんかただの記号区切りのテキストファイルだろ。 区切ってテキスト出力すりゃええだけじゃろ
924 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:50:33.73 ID:w3ljrVli.net] 質問者は出力について悩んでいる人に パーサーの自作をすすめる これがクソスレのクオリティ
925 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:03:23.99 ID:eTcqfU0K.net] パーサー次第で出力に差が出るだろう、そんなことも分からんのか???
926 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:41:33.03 ID:byZSyyWN.net] テキトーな仕様のオレオレCSVの自作を勧める奴がいまだに存在するとは。
927 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:45:11.41 ID:r/G6SK9c.net] 1行ずつ読んでいくんじゃないのか
928 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:47:22.25 ID:pyTHmoe6.net] オレオレ仕様のcsvが氾濫してるから今更どうしようもない それが問題になるようなら保存形式にcsvを用いる事自体が間違い
929 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:49:18.87 ID:r/G6SK9c.net] csvってカンマ区切りということ以外の仕様ってあるのか?
930 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 00:09:05.24 ID:Em9B638f.net] 無い オレオレの中でもメジャーなのに後付けでRFCが出来ただけ
931 名前:デフォルトの名無しさん [2016/09/20(火) 00:30:40.31 ID:o1tJ3Pdk.net] >>907 普通に見たことあるけど vectorじゃなくlist使って遅いとか >>911 質問読めてない糞民が何言ってんだか
932 名前:デフォルトの名無しさん [2016/09/20(火) 02:23:46.55 ID:E+J9y3sP.net] ポインタの無いC++を誰か作ってくれないかな…。
933 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 03:38:57.96 ID:MJf3DPDB.net] >>919 C++なら、あんまりポインタ意識しなくてもできるでしょ。 ライブラリが吸収してくれるんだし。
934 名前:デフォルトの名無しさん [2016/09/20(火) 06:57:10.89 ID:83nQEiQC.net] > vectorじゃなくlist使って遅いとか Javaしか使えないやつの付け焼き刃か
935 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:29:03.31 ID:l/rjpK7G.net] >>916 区切り文字(カンマと改行)をデータとして含む場合にどうするかについての仕様がある。 それが面倒くさいなら最初からタブ区切りテキストにしておけと思うが。
936 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:41:11.11 ID:h/QlA5En.net] ここで休んでいくか o.8ch.net/fg0j.png
937 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:17:39.33 ID:yT+pR0RD.net] CSVは汎用性とか規格準拠とか考え始めると面倒らしいね。 カーニハンとパイクの有名な『プログラミング作法』第4章でも 素朴なプロトタイプから汎用ライブラリに磨き上げていくネタに使われてる。 引用符でくくられた文字列フィールドに含まれるカンマを読み飛ばすとか、 文字列に引用符文字を含ませる場合のエスケープ処理、 フィールド先頭以外にいきなり出てきた引用符文字はどう扱うべきか、 そういった問題。 結局、仕様のあいまいな部分は、データをExcelに処理させて どう解釈するかを観察し、それに動作を合わせるという妥協策とか。 面白いけど奥深い(面倒くさい)話が載ってる。
938 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:23:33.04 ID:pi/Zyw6M.net] 面倒くさがりの俺はカンマのあとのスペースの扱いをどうするか考えるのをやめた
939 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:30:50.00 ID:nnGYYj6O.net] 実際問題、業務で扱うCSVがRFCにそってた試しがない データ中に,とダブルクォーテーションがないこと前提で全フィールド囲みなしとか データの改行かどうかはフィールド数から判断しろとか
940 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:34:47.14 ID:9l0NUqqb.net] 空白は有効な値として取り込みマズければ前処理でなんとかしてくれというのがかんたん
941 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:49:26.68 ID:pi/Zyw6M.net] >>927 空白のあとの引用符出現とか考えると面倒
942 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 15:15:36.96 ID:sn1HJBVo.net] 裏でExcel立ち上げてそいつにCSV読み込ませる ってのがスマートなやり方かもしれん。
943 名前:デフォルトの名無しさん [2016/09/20(火) 16:11:59.45 ID:83nQEiQC.net] 手作業でか? COM使えよ
944 名前:デフォルトの名無しさん [2016/09/20(火) 16:34:35.12 ID:83nQEiQC.net] ところでさ bitsetって複数ビットへのアクセスってできたっけか? 00001111 から 0001 のprvalueを得たり、 00000000 を 00011100 にするのに bs(4,2) = 0b111; みたいなこと
945 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 18:42:56.25 ID:yRlSWmtK.net] 今すぐN4606をダウンロードして20.9を読め
946 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 19:03:07.64 ID:ChLW8Xs7.net] C++標準についてですが よく言われる「ゼロオーバーヘッド原則」はどのように守られているのでしょうか? たとえば委員会はこの原則を明文化して守っていますか? または原則が委員の思想や感情だけによって守られていますか? 今後のアップデートにより破られることはありますか? D&Eには「思想も進化する」というような文が見られますが設計思想の変更プロセスはマニュアル化されているのでしょうか?
947 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:52:23.19 ID:DFwXwRkO.net] ゼロオーバーヘッドの意味するところはなんなのか知らんが、 仮想関数使った時点で間接参照になって現代のキャッシュマシンには厳しいオーバーヘッドになっていると思いますけどね。
948 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:54:50.75 ID:ChLW8Xs7.net] たぶんあなたは「ゼロオーバーヘッド原則」を何かわかっていないですね。 とにかく標準規格の委員会の設計方針のルールをしりたいのです
949 名前:デフォルトの名無しさん [2016/09/20(火) 20:58:56.89 ID:k+TyjvZt.net] キタ━━━━(゚∀゚)━━━━!!
950 名前:デフォルトの名無しさん [2016/09/20(火) 21:04:19.73 ID:obZzfy4A.net] そりゃ原則なんだから、原則守られるだろう。 原則Goto文が使われる事は絶対無いのと同じだ。
951 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:10:11.42 ID:3ENBAG3F.net] てかここで聞く質問じゃないだろ。直接委員会にメール送れよ。
952 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:12:30.36 ID:DFwXwRkO.net] >>938 知らないなら答えないでください とかいいだすぞwwwwwww
953 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:16:42.79 ID:tBN6CcRw.net] よし教えてやろう その言語機能を使わない人にとって(マシン語レベルで)余分な命令が生成されないこと ただしそれは書いたコードに対する局所的なもので スタートアップ時の処理のオーバーヘッドやワーキングセットの肥大化によるキャッシュヒット率低下ついては触れないのが常
954 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:17:17.91 ID:5hgqMPTY.net] あかんやつか
955 名前:デフォルトの名無しさん [2016/09/20(火) 21:57:22.02 ID:83nQEiQC.net] >>932 それはともかく、おまえは氏ね
956 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:59:44.26 ID:26fGody7.net] >>933 明文化されたルールはないんじゃない?ルールにするメリットないからやらないだろうし。
957 名前:デフォルトの名無しさん [2016/09/20(火) 22:01:25.46 ID:83nQEiQC.net] ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと通信系が故障してしまい、現在位置を把握することができなくなってしまった。 機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、それをビルの中の人間に見せるように命じた。 ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と書いて答えてきた。
958 名前:機長はにっこりと笑って手を振り、副操縦士に言った。 「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港があるはずだ」 「どうしてマイクロソフトの本社ビルだと分かったんです?」 「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか寄こさないからさ」 [] [ここ壊れてます]
959 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:15:01.88 ID:ChLW8Xs7.net] >>943 そうですか。ありがとうございます。
960 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:16:07.34 ID:Em9B638f.net] >>933 そんな自縄自縛ルールを明示したらjavaみたいになってしまうだろ。
961 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:26:54.29 ID:A2psZARz.net] >>912 えっ
962 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:51:13.68 ID:9l0NUqqb.net] >>940 そんな機種依存の最適化を気にするのも広い意味でオーバーヘッドや
963 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:54:34.83 ID:wtHZC2ze.net] >>931 bitsetは改良したらもっと使われると思うんだけどなあ boostみたいにサイズを動的に変えられるようにするのとバイト列として取り出せるようにして欲しい
964 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:04:57.83 ID:2u6BtGm8.net] >>947 バカにふれるな
965 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:45:29.10 ID:g6KAU3qV.net] ゼロヘア・アラウンド・オーバーヘッドの略
966 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:45.84 ID:vGo10QGu.net] >>933 江添に訊け
967 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 06:53:20.55 ID:t4AsfpX5.net] >>949 サイズを動的に変えるとなるとメモリーアロケーションが必要になるからなぁ 上限を 32bit/64bit に制限する手もあるけど中途半端感が拭えないし... そもそも普通にビット演算で事足りるし
968 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:03:47.17 ID:K2D2Rq8+.net] >>933 は例の人物の再来って感じだなぁ。 前スレッド終盤から、このスレッド序盤で活動した人の口調(文体)に似ている。 自分が理解しているレベルにぴったり適合し、自分が理解できる説明をされないと 「そんなことは聞いていません」「もっと実のある回答をお願いします」などと 慇懃無礼な態度で読み手の神経を逆撫でする質問者がいたんだよ。 ちなみに >>933 の質問には答えられません。
969 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 10:48:52.21 ID:7D4j/v4w.net] シュトラウプ(うろ覚え)さんに直接メールすれば答えてくれそう。 そんな英語力は無いんだろうけど。
970 名前:デフォルトの名無しさん [2016/09/21(水) 14:04:05.66 ID:6wq1WTZb.net] >>949 >>953 thx なさそうってことはわかった
971 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 20:33:55.57 ID:mzpKxj3U.net] >>954 神経を逆撫でをしたレスには見えたが 回答者がアスペな回答をしたからだったと記憶しているが。 お前、その時の回答者か?
972 名前:デフォルトの名無しさん [2016/09/21(水) 20:59:57.83 ID:6wq1WTZb.net] スルー検定中
973 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 21:04:36.22 ID:49I69gX0.net] ここもワッチョイ入れた方がいいと思うよ C#の初心者スレとか酷かったのが大分良くなったし
974 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 23:57:14.58 ID:juClqO0A.net] >>952 メールしてみゆ
975 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:08:42.02 ID:G5ENlyOZ.net] 諸事情と成り行きでコンストラクタがこんな風になったんだけど糞コードですか? hoge(bool type) : base(type ? static_cast<base>(new a) : static_cast<base>(new b)){}
976 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:19:01.74 ID:RtaHiGLM.net] >>961 ポインタがstatic_cast<base>できるのか?
977 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:21:49.80 ID:G5ENlyOZ.net] >>962 ミス 正しくはstatic_cast<base*>
978 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:46:02.45 ID:Pt+3vwTk.net] 実装はどうでもいいが boolを取ってそれによってインスタンスの性質が(大きく?)変わるコンストラクタというのが
979 名前:用者視点からの一般論では糞っぽい設計だな [] [ここ壊れてます]
980 名前:デフォルトの名無しさん [2016/09/22(木) 00:54:34.74 ID:6AgJgQbd.net] static_castしてる意味が解らん
981 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:00:01.33 ID:G5ENlyOZ.net] >>965 三項演算子だから型を合わせないといけない
982 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:44:09.82 ID:eab4XCGG.net] hogeにcreate_aとcreate_bみたいなstaticメソッド作って、ユーザーコード側で参考演算子書かせりゃいいのに 馬鹿すぎてそんなことも思いつかないなら、今すぐコプログラマーやめろ(´;ω;`)
983 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:59:14.64 ID:sh3eyHdy.net] きっと何かのテンプレートか何かに渡すとかで コンストラクタがあの形じゃなきゃダメな制約が云々でしょ
984 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 02:01:04.64 ID:G5ENlyOZ.net] >>967 これが全く良くないのは分かってるがやりたくなさすぎる仕事だったから横着しすぎた感はある
985 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 03:01:20.41 ID:7BuONNwf.net] >>145 S只 ST只 STL只 貞子
986 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 04:45:30.88 ID:uum3cLOt.net] new bって初心者っぽい
987 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 05:28:33.71 ID:gyLxLatL.net] >>967 参考にします
988 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:30:27.01 ID:RG/iP2c6.net] ファクトリーメソッドが要るとみんなは気付いているが 政治的問題でなし崩しになっていると見た
989 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:40:14.43 ID:vdVnk2cw.net] ファクトリーメソッドでいい引数の渡し方ってある?っていうか引数の設計? パラメータばっか増えてうまくまとめられない。
990 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:13:51.56 ID:7wkfE+LH.net] >>974 条件がわからんけどbuilderパターン使うとか
991 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:39:48.97 ID:sh3eyHdy.net] 俺も条件がわからんが テンプレートのパーフェクトフォワードが使えるかもしれないね
992 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 23:49:28.05 ID:vdVnk2cw.net] サンキュー。
993 名前:デフォルトの名無しさん [2016/09/23(金) 02:38:31.47 ID:FrbFFvPo.net] 初めから読んでみたんですが、 このスレ恐い人もいますね。
994 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:12:24.83 ID:z2QCychJ.net] おっかない人が鉞持って茂みに潜んでることもあるので覚悟して臨んで
995 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:37:45.42 ID:ircl/elV.net] C++やる人は怖いのですね
996 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 15:04:30.06 ID:z2QCychJ.net] C++をやったから怖くなったのか、それとも怖い人はC++に魅入られるのか、それともその両方なのか、それはまだ判りません
997 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:12:15.84 ID:1AYxo37g.net] std::array<int,3> ia = {1,2,3}; なんでいちいちサイズをしていなきゃいけないの? コンパイラは右式からサイズを知れるはずだよね
998 名前:デフォルトの名無しさん [2016/09/23(金) 16:43:56.15 ID:DI5cYQNa.net] arrayがクラステンプレートだからだよ テンプレート実引数を推定できるのは関数テンプレートだけ
999 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:50:29.51 ID:Z6rdhOh4.net] もともと生配列なんて狭いスコープ内に閉じた使い方しかしてなかったし、あえてstd::array に変える気が起こらん。
1000 名前:デフォルトの名無しさん [2016/09/23(金) 16:56:36.61 ID:SmlWzTAW.net] arrayってoparator[]が境界チェック無いとか困る〜
1001 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:02:31.08 ID:1AYxo37g.net] >>983 そう・・・・ 使い物にならんな、標準なんかにするなよw
1002 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:04:21.59 ID:k0FhbiHl.net] サイズとか取れて便利じゃん。俺ベクタしか使ってないけど。
1003 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:19:30.71 ID:z2QCychJ.net] "std::array<int> ia = {1,2,3}" という文字列を読んで、括弧内の要素数を数えて std::array<int,3> ia = {1,2,3}として書き換えてくれるテンプレートメタプログラミングすればいんじゃね?
1004 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:28:49.47 ID:Z6rdhOh4.net] template<std::size_t N> の文脈の中でだったら不要だしな
1005 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:41:44.36 ID:jjS354wW.net] 配列をstd::arrayに置き換えなくてはならなくなった。 と被害妄想してグチを2chで垂れるのは間違いなく人生負け組
1006 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 19:45:39.19 ID:k/GEXWfz.net] 新しいコンパイラならstd::experimental::make_arrayが使えるんでねぇの? en.cppreference.com/w/cpp/experimental/make_array
1007 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:07:45.67 ID:1AYxo37g.net] ベタに配列でよくね?
1008 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:08:53.66 ID:1AYxo37g.net] >>990 2ちゃんに居る時点で負けだろw
1009 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:23:26.18 ID:Z6rdhOh4.net] algorithmにbeginとendを渡すときでも生配列でいいしな
1010 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:26:55.96 ID:x7wdola9.net] シンタックスシュガー
1011 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:01:07.45 ID:FB5yu9xq.net] サイズ欲しい時に変数用意したり、演算したりするのが面倒だし、余分な処理になるからじゃないの? std::arrayはサイズ変数を保持していないし、演算もしていないし at()使えば範囲チェックしてくれるし、生配列にも直接アクセスできるし 凄く便利だと思うけどな
1012 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:20:41.97 ID:kJ5RCJcw.net] 超薄型コンドームがでて、感覚上生挿入と変わらないことが統計学的に証明されていても、気持ちの問題だからと生を求める人がいる
1013 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:11.65 ID:nEqelPbM.net] はい
1014 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:50.82 ID:tPpdE/S0.net] 難しいなぁ
1015 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:49:35.34 ID:pyQwxOFM.net] arrayのメリット:コピーができる
1016 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:59:45.45 ID:x7wdola9.net] std::copy
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています