- 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/
- 486 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 21:51:12.72 ID:VQqTJbFl.net]
- 4引数まで版でconst charの中身の展開は省略
#define SELECT4(d1, d2, d3, d4, name, ...) name #define MAKE_ENUM(...) SELECT4(__VA_ARGS__, MAKE_ENUM_4, MAKE_ENUM_3, MAKE_ENUM_2, MAKE_ENUM_1)(__VA_ARGS__) #define MAKE_ENUM_1(key) ENUM_ ## key #define MAKE_ENUM_2(key, ...) ENUM_ ## key, MAKE_ENUM_1(__VA_ARGS__) #define MAKE_ENUM_3(key, ...) ENUM_ ## key, MAKE_ENUM_2(__VA_ARGS__) #define MAKE_ENUM_4(key, ...) ENUM_ ## key, MAKE_ENUM_3(__VA_ARGS__) #define MAKE(...) \ typedef enum _ENUM{ \ MAKE_ENUM(__VA_ARGS__), ENUM_Num \ } ENUM; \ //const char *Name[ENUM_Num] ={ #__VA_ARGS__ };
- 487 名前:デフォルトの名無しさん [2016/03/19(土) 22:03:39.89 ID:4a76PkUY.net]
- >>486 ありがとうございます
恐らく本格的なプリプロセッサを組まれる方は任意引数でやっているだろうなぁ とは思いますが、自分の力量にしたがいます。
- 488 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 01:20:47.66 ID:3h/wnv4V.net]
- なにバカ言ってるんだか
プリプロセッサでループや再帰(的処理)を行うには何らかの形で 作者が想定した処理できる限界の数だけのマクロをベタ書きで用意するしかない 事前の用意不要で任意の数をループや再帰で処理するのは元より不可能
- 489 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 01:24:49.08 ID:YNMOH2/p.net]
- なめくさりミステイクしてね?
- 490 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 02:24:48.46 ID:yN6fzEfa.net]
- 今時C++でマクロ展開のループとかしてる時点で論外だしな。
- 491 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 02:26:06.45 ID:yN6fzEfa.net]
- いやループはマクロだけじゃ無理か。再帰のしかも一定数までだな。
- 492 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 04:59:40.07 ID:wXobkPts.net]
- ハハワロス
- 493 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 09:05:43.61 ID:9j4drtjC.net]
- __VA_ARGS__なんて使わないで、こういう風にすればいいだけじゃ?
www.geocities.jp/rage2050a/rEnumStr/rEnumStr.html
- 494 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 09:29:08.28 ID:9j4drtjC.net]
- ちょっとだけ探した限りだと__VA_ARGS__使うやり方ではこのやり方が一番柔軟で良さそう
www.gamedev.net/page/resources/_/technical/apis-and-tools/maintenance-free-enum-to-string-in-pure-c-with-better-enums-r4230 数の制限はやっぱりベタ書きでなんとかしなくちゃいけないけどね
- 495 名前:デフォルトの名無しさん [2016/03/20(日) 14:17:44.97 ID:Q9e0J8ZE.net]
- BOOST_PP_AUTO_RECってのがある。
こいつは例えばあるマクロ関数「FUNC」があったとして、 再帰の回数分だけFUNC_1 FUNC_2…と作り出す機能がある。 あなたが求める機能は、もし再帰的に書けるなら MAKE_ENUM_ITER(key, ...) ENUM_ ## key, MAKE_ENUM_ITER(__VA_ARGS__) のように書けばいいわけだから、 後はわかるだろ?
- 496 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 14:19:27.99 ID:Q9e0J8ZE.net]
- sageてなかった
- 497 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 15:57:09.34 ID:NZgllOnE.net]
- 誰に向けたレスだ
> 再帰の回数分だけ をどうマクロで処理してるかわかってる? 設計としては再帰の回数を管理するカウンタ用のマクロを例えば COUNT_10,COUNT_9,...と必要な数だけベタ書きで用意して処理に使っているので あらかじめ用意されてるカウンタ用マクロの数を越える任意の回数の再帰を扱えるわけではない
- 498 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 16:04:24.63 ID:Q9e0J8ZE.net]
- 再帰処理させたいマクロをFUNCとして、
FUNCを何回再帰させるかを指定してBOOST_PP系統のマクロを定義すると、 FUNC_nという形になる名前の任意のマクロのうち、まだ定義されていない 名前のマクロを探し出して再帰的にFUNC_nを命名する機能を持っているのだ >>486のやっているベタ書きを自動的に書いてくれるのだ
- 499 名前:デフォルトの名無しさん [2016/03/20(日) 18:31:41.32 ID:EqMhetHD.net]
- >>498
boost/preprocessor/repetition/repeat.hpp の中身見たことある?
- 500 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 01:48:29.48 ID:ja7H/O1J.net]
- 百歩譲って
A=A+1 って式を認めよう この場合のイコールは代入を意味するんだな そこで質問です A+1=A って書いたらどーなるの? A=A-1 と同じ結果が得られるの? 教えてー
- 501 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 01:49:27.42 ID:90Oe+hOc.net]
- >>500
コンパイルエラーになるだけです
- 502 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 01:50:09.88 ID:ja7H/O1J.net]
- >>501
そっか・・・ あんまり論理的ではないのねorz
- 503 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 02:17:41.55 ID:d4s8z5nU.net]
- あーたの狭い脳内論理にフイットしないってだけで完全に論理的だから
- 504 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 02:24:07.46 ID:SoMbpeP6.net]
- マセマティカでも使えば幸せになれるかも
- 505 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 02:53:49.93 ID:YLhrJ5lt.net]
- >>501
おまいはエジソンかよw
- 506 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 03:41:34.03 ID:ti1fSBNM.net]
- だから = は等価(equal, equivalence)じゃなくて割り当て(assignment)だと何度言ったら
- 507 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 05:12:04.79 ID:YLhrJ5lt.net]
- あ、レス番間違えた
エジソンは>>500ね
- 508 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 05:55:27.03 ID:uWb5tpCC.net]
- 質問です。
(コンパイラ絡みの話題なので若干スレチかもしれませんが、このスレが一番詳しい人が多いと思いますのでご容赦ください) stringやlistなどはc++11でABIが変更になったと聞きますが、これの挙動がgccとclangで違うことを最近知りました。 たとえば以下のコードをビルド(g++ 5.2.0とclang++ 3.7.1)して nm --demangle コマンドでシンボルを見てみると、 $ cat hoge.h #include <list> using namespace std; struct hoge { list<int> get_list(list<int>); list<int> get_list(); }; $ cat hoge.cpp #include "hoge.h" list<int> hoge::get_list(list<int>) {return list<int>();} list<int> hoge::get_list() {return list<int>();} 引数のある関数get_list(list<int>)のシンボルはg++、clang++ともに hoge::set_list(std::__cxx11::list<int, std::allocator<int> >) ですが、引数のない関数get_list()のシンボルはg++だと hoge::get_list[abi:cxx11]() 、 clang++だと hoge::get_list() でした。 この違いのせいでg++でビルドしたライブラリをclang++のプロジェクトで使うことができません。 やむなく -D_GLIBCXX_USE_CXX11_ABI=0 オプションを付けてビルドし直したのですが これだとC++11でもたらされた効率化の恩恵が受けられないですよね? 何か上手い方法はないでしょうか?(clangが対応するのを待つしかない・・・?) # なお、ライブラリのほうをg++でなくclang++でビルドしろというのはなしでお願いします
- 509 名前:デフォルトの名無しさん [2016/03/23(水) 06:01:35.89 ID:LEkWD+7J.net]
- >>500
struct B { B& operator + (int) { return *this; } B& operator - (int) { return *this; } B& operator = (B&) = default; }; B A; A=A+1; A+1=A; A=A-1;
- 510 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 10:12:52.17 ID:COygSTBI.net]
- struct hoge{
std::string s; }; hogeのムーブコンストラクタはどう書くのが正しいですか
- 511 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 10:29:58.57 ID:YLhrJ5lt.net]
- >>509
すべてAになるとかエジソンコードかコレw
- 512 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 10:31:56.68 ID:LEkWD+7J.net]
- メンバポインタで仮想関数を呼び出すとき、基底クラスの関数を指定ってできますか?
struct hoge { virtual void hage() { } }; struct fuga : hoge { void hage() { } }; void (hoge::*hogo)() = &hoge::hage; fuga hege; (hege.*hogo)(); //fuga::hageじゃなくhoge::hageにしたい
- 513 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 10:56:19.75 ID:GrZPafJv.net]
- >>512
出来ない
- 514 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 11:01:24.81 ID:d4s8z5nU.net]
- そもそもメンバポインタなんてものは使うな
- 515 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 14:32:18.80 ID:LEkWD+7J.net]
- >>513
thx 情報密度の高いわずか4文字、その次の真空とは格段に違いますね。
- 516 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 00:36:19.09 ID:CsN4wd4t.net]
- newとか書くのは老害なんですかね?
今日若いもんに指摘されたんだけども make_hogehogeとか書いたほうがよいのでしょうか? 老害脱却してナウくてミニマルなコード書きたい
- 517 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 00:41:36.09 ID:9Xk0G6q+.net]
- 指摘したやつに聞いてこいよ
というか指摘されたときにちゃんと理由聞いとけよ
- 518 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 01:42:21.09 ID:019JwaRF.net]
- deleteしわすれるマヌケなコードでなければ使ってもいいが
- 519 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 02:15:40.78 ID:lQwaLUOO.net]
- >>500
上段より下段が時系列的に後 右辺より左辺が時系列的に後 そんなカスケード的概念が根底にある BASICに行番号が有った頃と何も変わらない 左辺が変数のみなら代入を意味する 左辺が数式なら数式と扱う どの辺がオブジェクト指向か知らない ポリモーフィズムとかカプセル化も関係ない 多分、生物は前を向く、みたいな本能に根差した定義が隠れている
- 520 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 08:13:12.75 ID:xZz5tDVg.net]
- >左辺が変数のみなら代入を意味する
>左辺が数式なら数式と扱う という妄想でした (c1 ? gr() : fr()) = 100 ;
- 521 名前:デフォルトの名無しさん [2016/03/24(木) 08:24:49.44 ID:Nz54sUCC.net]
- それを言うなら
*pt = 100; でしょ A=100;のAもC++では左辺値という式で 変数とか数式とかいう言葉遣いは行番号BASICの話だろ
- 522 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 08:47:03.11 ID:RWWxbY4p.net]
- >>516
スマートポインタを調べておいで
- 523 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 08:50:35.73 ID:4NO08lYx.net]
- 俺は数値型はmallocしか使わない
- 524 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 09:04:10.19 ID:wWfOqsS1.net]
- なぜcallocを使わないのか
謎である
- 525 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 11:15:22.83 ID:biS/7wG3.net]
- callocではポインタを初期化出来ないから
- 526 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 11:17:02.82 ID:biS/7wG3.net]
- ああ、数値型限定か。取り下げ。
- 527 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 12:08:43.62 ID:ZS8UeVhQ.net]
- >>516
そう書く以上ある程度は知ってるんでしょ? まず使ってみて判断すりゃいい。
- 528 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 14:24:41.64 ID:aFiY6vgp.net]
- スマポのデメリットって、
ちょっと記述が長いくらい?
- 529 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 15:53:26.47 ID:eZePobDJ.net]
- そもそもC++において記述量はものの数に入らない。注意はゼロオーバーヘッドに向いている
- 530 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 16:10:53.13 ID:aFiY6vgp.net]
- まあ、そうなんだけどね
もしC++の開発当初からスマポの概念が存在してたとしたら もうちょっとシンプルなキーワードになってたのかなと思わなくはない
- 531 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 16:32:37.90 ID:5JBRPHnG.net]
- スマポ使って記述量増えるか?delete書かなくていいんだし、例外安全なコード書くこと考えたらスマポ使わないと大変な記述量になるぞ
- 532 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 16:40:18.89 ID:YciTCaLR.net]
- C++とOpenGLで大量のデータ(といっても1ファイル数MBのバイナリファイル)を表示するグラフを作ったんだが
ファイルを次々読んでいくと不正落ちするんだが タスクマネージャを見る限りメモリリークはしてないっぽいんだが 原因はなんだろう? エスパーさん助けて
- 533 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 16:47:29.18 ID:YnxOCpos.net]
- >>532
フツーにVC++でデバッグしろや
- 534 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 16:56:15.84 ID:aFiY6vgp.net]
- >>531
あくまで宣言時の話ね 安全かどうかはとりあえず置いとく
- 535 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 17:11:05.46 ID:YciTCaLR.net]
- >>533
そういやそうやね デバッグしたときの思い出したけどメモリのアクセスの違反とかやったかな ただどこのメモリアクセスかだとかてんで絞り込めなかった記憶が蘇ってきた
- 536 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 17:11:55.85 ID:bJRa7hQW.net]
- スマポは宣言したことないなあ
- 537 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 18:19:30.58 ID:GuX4g1Aq.net]
- class POINT{
int x, y; POINT(int x, int y){ this.x = x; this.y = y; } }; 式にはクラス型が必要です。とエラー出る。 Javaだとこの書き方で来たと思うんだけどどうれば?
- 538 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 18:20:23.26 ID:HU0hrWcK.net]
- this.x
↓ this->x
- 539 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 19:05:20.17 ID:4ybpt3lE.net]
- コンストラクタ内はthis未定。
- 540 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 19:16:58.07 ID:xZz5tDVg.net]
- なにをいっているんだこのばかは
- 541 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 19:17:43.17 ID:CKYJRfTx.net]
- >>537
class POINT{ int x_, y_; POINT(int x, int y) : x_(x), y_(y) {} };
- 542 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 22:26:04.65 ID:zkjgNnUp.net]
- >>541はアスペ
- 543 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 22:39:30.65 ID:f7qbbkg+.net]
- >>541
class POINT{ int x_, y_; public: POINT(int x, int y) : x_(x), y_(y) {} };
- 544 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 23:04:36.81 ID:3G6+DDFH.net]
- >>510
struct hoge{ std::string s; hoge() = default; hoge(hoge &&) = default; hoge(hoge const &) = default; }; struct hoge{ std::string s; hoge(hoge &&baka) : s{std::move(baka.s)} {} };
- 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]
- アンダースコアで始まる識別子がたくさん出てくるだけじゃあ
|

|