- 1 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:36:27.08 ID:jZESqUY+.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part122 peace.2ch.net/test/read.cgi/tech/1453557975/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1439849418/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
- 545 名前:デフォルトの名無しさん [2016/03/24(木) 23:49:09.31 ID:zWmpvvy2.net]
- >>535
clangやgccならAddressSanitizerでバッファーオーバーフローしたタイミングで止めてコールスタックを表示できるし、 解放済みメモリへアクセスしたときもそのアドレスを解放した箇所のコールスタック表示できる。
- 546 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 00:38:22.72 ID:+Ze54dSh.net]
- でもOpenGLのデバッグはつらいね。
OpenGLの使い方間違え落ちると呼び出し元がわからんことが多いし。
- 547 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 00:52:21.56 ID:UpbiIEYU.net]
- >>537
class POINT{ int x, y; POINT(int x_, int y_) : x(x_), y(y_) {} }; だろ
- 548 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 00:53:38.91 ID:UpbiIEYU.net]
- >>537
ていうか class POINT{ public: int x, y; POINT(int x_, int y_) : x(x_), y(y_) {} }; しておかないとコンストラクタ呼べんよ
- 549 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 00:58:19.08 ID:BMGk8TKa.net]
- >>548 そのアンダースコア要らない。
- 550 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 01:05:01.92 ID:UpbiIEYU.net]
- でもわかりにくいだろ?
- 551 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 01:09:41.99 ID:OQH/xHTw.net]
- >>548であれば明確で分かりやすいから要らない
- 552 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 01:16:51.01 ID:ea+R8FSN.net]
- 後ろアンダーラインカコワルイ
- 553 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 02:09:13.34 ID:9WnSpcyZ.net]
- だよね。引数を後ろアンダースコアにするの俺も昔やってたことあるけどカッコ悪すぎるのでもう止めた
メンバ変数は前アンダースコア、引数にはアンダースコア付けないで落ち着いた 後ろアンダースコアって何であんなにカッコ悪いんだろ?m_よりはマシだと思うが
- 554 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 02:58:29.24 ID:7ath5rIc.net]
- 変数命名で思い出したけど、いろんな様式あるよねキャメルケースとかスネークケースとかそういうの
どれが流行ってるとか一般的にどうあるべきとかいう一般論あるの?
- 555 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 03:08:18.87 ID:cXdBDF9l.net]
- 前アンダーが処理系予約と知らずに使う方がもっとカッコ悪い
- 556 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 03:11:49.84 ID:UodAUCRU.net]
- それぞれの流儀で決まる
コーディング規約を守るために努力すんのは無駄極まりないからGoogleの規約基準にしていいと思うけど さすがにiとかbは消えたけどm_とg_はたまに見かける
- 557 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 03:19:28.56 ID:9WnSpcyZ.net]
- >>555
規格ちゃんと読んだか? 前アンダースコアが予約されてる条件を理解してるか? メンバ変数の前アンダースコアは合法だってことを知ってるか?
- 558 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 03:58:43.82 ID:F3D1y9dC.net]
- 法典を示せよ
- 559 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 04:05:28.83 ID:cXdBDF9l.net]
- >>557
マクロはCの制約を適用しなければいけない 必然的に前アンダーは使ってはいけない
- 560 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 04:16:26.20 ID:9WnSpcyZ.net]
- 何言ってるんだか
規格を見るのが一番だが、この辺りでも見て自分の頭で考えてね https://msdn.microsoft.com/ja-jp/library/cc440188%28v=vs.71%29.aspx _大文字始まりは主にマクロのために全てのスコープで予約されてるが、_小文字始まりはグローバルスコープ以外では合法 これくらいのルールが分からないようじゃプログラマ失格だぞ 法典を示せ?テメエで調べろよ怠け者
- 561 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 05:55:20.56 ID:Agsep6u6.net]
- 「_大文字で始まる名前、_小文字で始まる名前は
ここでは許される、ここでは許されない」みたいな部分で 規格のギリギリを突くような書き方が好ましいとは思わないけどね。 場面によらずアンダースコアで始まる名前は一切つけない、 という方針も安全策としてありうるかと。 せいぜい複数人で開発しているときに、 「このメンバ名、_で始まってるけどいいんだっけ?」 「この場合は許されてるんですよ。予約されてるのは… (しばらく薀蓄タイム)…というわけなのです」 「ふぅん、そうか。要するに問題ないのね」 という会話が生じる程度のネタでしょ。
- 562 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 06:13:55.38 ID:9WnSpcyZ.net]
- ギリギリでもなんでもなく明確に合法なんだが
それにネタ程度の話なんかじゃなくて、メンバ変数を_小文字始まりに統一するとIDEで_を入力するとメンバ変数の一覧が出てきてメッチャ捗るという現実的な恩恵がある C#では奨励されているスタイルだし、C++とC#を同じくらいやる俺にとってはもうこのスタイルで統一するのがベストという結論
- 563 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 06:40:08.87 ID:i3XIX2iS.net]
- まったくだ
- 564 名前:デフォルトの名無しさん [2016/03/25(金) 06:52:38.28 ID:MISdMFxz.net]
- >>562
どこで奨励されてるの? https://msdn.microsoft.com/ja-jp/library/ms229045(v=vs.100).aspx ここには使うなって書いてあるけど
- 565 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 07:06:04.17 ID:ACUGT+cL.net]
- this付ける派閥には一切恩恵がないや…
- 566 名前:デフォルトの名無しさん [2016/03/25(金) 07:35:12.73 ID:bT5/u8Kc.net]
- 前アンダースコアはないわ
- 567 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 07:48:56.52 ID:i3XIX2iS.net]
- >>564
そんな不適切なページ
- 568 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:10:52.98 ID:cXdBDF9l.net]
- C++ではグローバルネームだけが前アンスコ予約となってる
Cとの共存に考えがいたらないまま、 >>557 >規格ちゃんと読んだか? と言ってしまい、引っこみがつかなくなり発狂中
- 569 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:14:22.84 ID:+Ze54dSh.net]
- スレタイ
- 570 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:16:09.34 ID:i3XIX2iS.net]
- 大文字と小文字の区別がつかない人間か
- 571 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:25:16.24 ID:cXdBDF9l.net]
- >>569
Cのヘッダーを全くインクルードしなけりゃ良いよ そんなの学校の宿題くらいしか無いけどね
- 572 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:29:34.02 ID:UodAUCRU.net]
- 動けば何をやってもいいのがC++だぞ
- 573 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 08:33:00.37 ID:TW5rwKlv.net]
- >>541です
物議を醸すようなコードを晒してすみません 個人的には前アンスコでも後アンスコでもいいと思います 同じでプロジェクト単位で統一されていることが重要と思っていてC++としてどちらがいいとかはないと思ってます
- 574 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 09:11:07.81 ID:+Ze54dSh.net]
- 素のCヘッダなんて、どうしてもCのライブラリを使いたい場合くらいしか使わんなぁ。
C/C++共用のヘッダじゃなきゃ自分でextern "C"することになるから、そのときに 両方の規格を気にするくらいで。 そもそも、自前のcppコードでメンバにアンダースコア使う話とCヘッダのインクルードが どう関係あるのか意味不明。
- 575 名前:535 mailto:sage [2016/03/25(金) 09:21:42.75 ID:qvYXoatK.net]
- >>545
だいたい数十ファイル(ばらつき)を読み込んだあたりで突然落ちて 最初はメモリリークを疑ったからかなり明示的にメモリの解放を頻繁に行うようにした でもやっぱり症状変わらなかった 解放済みメモリへのアクセスもあるかなって思ったけどようわからんかったけど もうちょい頑張ってみる >>546 OpenGLとかコードをパクりまくってつぎはぎだらけでなんとか表示させてるからあんまり意味わかってなくてつらい部分は確かにある このOpenGLあたりでグラフィックメモリがパンクしてんのかとも思ってコード内でグラフィックの使用量吐き出させたりフリーソフトで監視したけどそんなにメモリが増大していってる感じじゃなかったな
- 576 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 09:37:39.50 ID:KBRwIVst.net]
- あれ?これ合法だっけ?ってなる時点で紛らわしいので避けるかな
だったら前this か m_ の方がマシ
- 577 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 10:22:53.41 ID:AP4XabWz.net]
- >>559
classのメンバ変数弄るならInline関数使うべきだろ。 そこ触るのにcとの互換性考慮する必要なくね?
- 578 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 11:19:19.06 ID:9WnSpcyZ.net]
- StyleCop死ねwww
stylecop.codeplex.com/wikipage?title=A%20Brief%20History%20of%20CSharp%20Style&referringTitle=Documentation
- 579 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 11:27:57.09 ID:9WnSpcyZ.net]
- 前thisなんてルール作ったところで
this付けなくてもエラーにもなんにもならないしルール違反コード探すのだって容易じゃない そんなの全く意味ないんだよこのクソバカStyleCop
- 580 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 15:47:57.54 ID:ACUGT+cL.net]
- _fooでもm_barでもthis.bazでも
それを強制されるのなら、コーディング規約としては大して変わらん気がするなあ
- 581 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 16:01:49.59 ID:ACUGT+cL.net]
- あ、ごめん。this.じゃねぇ
- 582 名前:片山博文MZ ◆T6xkBnTXz7B0 [2016/03/25(金) 17:02:16.92 ID:C4e13KV/.net]
- アンパンマン、新しい顔ができたよ!!!
Unboost --- Time to say good-bye to Boost https://github.com/katahiromz/unboost
- 583 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 17:22:36.13 ID:ZbElIMvp.net]
- g_とかm_とかクッソ気持ち悪い
- 584 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 17:55:35.65 ID:uQE9fwFQ.net]
- 前アンスコが一番素敵だワ
- 585 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 18:09:09.53 ID:i3XIX2iS.net]
- _そ_う_お_も_う_
- 586 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 18:12:39.86 ID:i3XIX2iS.net]
- しかし_を入力するとメンバ一覧が出てきて捗るなどという考えは皆無だな
- 587 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 18:24:41.23 ID:uQE9fwFQ.net]
- >>586
ん?便利と思うよ。mでも何でもいいけど。 逆に不便なのが、IDEのコンストラクタやsetter/getter自動生成機能で_やmが関数名や仮引数名についちゃうところ。
- 588 名前:デフォルトの名無しさん [2016/03/25(金) 20:17:21.95 ID:CiUv48rG.net]
- アンダースコアで始まる識別子がたくさん出てくるだけじゃあ
|

|