- 1 名前:デフォルトの名無しさん(ワッチョイ dfcf-HvS5) mailto:sage [2017/01/09(月) 14:49:27.56 ID:p96WJVyd0.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part128 echo.2ch.net/test/read.cgi/tech/1480172629/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 191 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/21(土) 11:02:38.55 ID:Bf4L6OzOa.net]
- それワイのやつや!
- 192 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/22(日) 00:06:25.08 ID:LwmXYJhf0.net]
- >>185
だから初期化ってどこに書いてあるんだよ 幻視か? だからリスパダールちゃんと飲めとあれほど・・・
- 193 名前:デフォルトの名無しさん (ワッチョイ cf7b-rTuY) [2017/01/22(日) 00:24:56.56 ID:77/TNfJH0.net]
- >>182
こんなのどうやってまとめるんだ…
- 194 名前:デフォルトの名無しさん (ワッチョイ bfcb-xrkK) [2017/01/22(日) 02:31:51.43 ID:hchjfZjx0.net]
- 江口はなんて?
- 195 名前:デフォルトの名無しさん (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 02:40:24.62 ID:rrJzCAZR0.net]
- 教えて下さい。
環境は VisualC++2015 x64 です。 与えられた文字列の引数について、1文字が1バイトなのか、2バイトなのかで呼び出す関数を切り分けたいと思い、SFINAE で以下のようなコードを書きました。 しかし、こののコードで「関数A」を呼んで欲しいのに、「関数B」が呼ばれてしまいます。 - なぜ関数Bが呼ばれるのか - 1文字のバイト数で切り替える手段 この2点について、教えて下さい。よろしくお願いします。 extern void* enabler; // 関数A (本当は1文字が1バイトの時用の関数) template <typename STR, std::enable_if_t<sizeof(decltype(std::remove_all_extents<STR>::type()[0])) == 1> *& = enabler> void hoge(const STR&) { } // 関数B (本当は1文字が2バイトの時用の関数) template <typename STR, std::enable_if_t<sizeof(decltype(std::remove_all_extents<STR>::type()[0])) != 1> *& = enabler> void hoge(const STR&) { int tmp; tmp = sizeof(decltype(std::remove_all_extents<STR>::type()[0])); // どういう訳か tmp == 1 となる } void main() { std::string s; hoge(s); // 1バイト版である、関数Aを呼んで欲しい }
- 196 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK27-o4cX) mailto:sage [2017/01/22(日) 03:05:41.88 ID:NkQzBql/K.net]
- >>191
1 charは常に2バイトではない。あなたはマルチバイト文字列の基礎を理解していないようだ。 マルチバイト文字列中の複数のcharが一文字になっているか否かは、 文字列の先頭から1charごとにcharの値の範囲を確認し、lead byteかtrail byteかを判定するしかない。
- 197 名前:デフォルトの名無しさん (ワッチョイ bfcb-SmTw) [2017/01/22(日) 03:12:07.68 ID:hchjfZjx0.net]
- ビルド通らないからなんでかはわかんない
template <typename STR, std::enable_if_t< sizeof( typename STR::value_type ) == 1, std::nullptr_t > SFINAE = nullptr > void hoge(const STR&) { } template <typename STR, std::enable_if_t< sizeof( typename STR::value_type ) != 1, std::nullptr_t > SFINAE = nullptr > void hoge(const STR&) { } これでいけない?
- 198 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK47-o4cX) mailto:sage [2017/01/22(日) 03:12:21.28 ID:NkQzBql/K.net]
- 型情報からはマルチバイト文字列のlead/trailに関する情報は得られない。よって、各charの値の範囲を実際に確認しないと、わからない。
- 199 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 07:14:06.66 ID:7mC+0LM10.net]
- >>192
日本語が理解できないボケ老人は去れ
- 200 名前:デフォルトの名無しさん (ワッチョイ a37d-wsSS) mailto:sage [2017/01/22(日) 08:04:55.45 ID:5o7PrILb0.net]
- >>191
例のコンパイラがぶっ壊れてるんだろうね gccは期待通り ideone.com/9pSqel
- 201 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 08:28:45.75 ID:gigvK4EO0.net]
- オーバーロードでよくね
- 202 名前:191 (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 08:37:36.49 ID:rrJzCAZR0.net]
- >192-196
ありがとうございます。 >193 確かに期待通りの動作をします。 ただ、この先 MFC の CStringA, CStringW, 生配列などを仮引数として与えたいため、operator[] の戻り値で判定出来ないか考えていました。 >196 なるほど。コンパイラの問題くさいので代替案を考えてみます。 ありがとうございました。
- 203 名前:191 (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 08:50:18.71 ID:rrJzCAZR0.net]
- >192-197
下の様に、sizeof, decltype を移動させたら、あっさり動きました。失礼しました。 template <typename STR> struct helper { enum { item_size = sizeof(decltype(STR()[0])), }; }; extern void* enabler; // 1バイト版 template <typename STR, typename std::enable_if<helper<STR>::item_size == 1>::type *& = enabler> void hoge(const STR&) { } // 2バイト版 template <typename STR, typename std::enable_if<helper<STR>::item_size == 2>::type *& = enabler> void hoge(const STR&) { } void main() { std::string a; hoge(a); // 1バイト版 std::wstring w; hoge(w); // 2バイト版 }
- 204 名前:デフォルトの名無しさん (ワッチョイ 237b-rTuY) [2017/01/22(日) 09:58:50.62 ID:iEDujvJA0.net]
- https://youtu.be/quIHgwuF6r4
- 205 名前:デフォルトの名無しさん (ワッチョイ f302-JQ1R) mailto:sage [2017/01/22(日) 13:37:19.35 ID:gnARoY8z0.net]
- CStringとかまだ存在してたのかよ
- 206 名前:デフォルトの名無しさん (ワンミングク MM9f-aDhR) mailto:sage [2017/01/22(日) 14:40:31.27 ID:hBhrTyQGM.net]
- https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
- 207 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/22(日) 15:06:13.66 ID:paMlvMvI0.net]
- >>199
sizeof(decltype(STR()[0])) って sizeof(STR()[0]) と何か違ったっけ?
- 208 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 15:53:04.56 ID:7mC+0LM10.net]
- mainがvoidなレベルの人にそんな突っ込みをしても…
- 209 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/22(日) 20:43:26.81 ID:LwmXYJhf0.net]
- 戻らないmainについてもガタガタ言っちゃう人がねえ
- 210 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 22:57:58.70 ID:gigvK4EO0.net]
- mainのreturnは省略したら0が返ることが保証されている
- 211 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 22:59:58.14 ID:7mC+0LM10.net]
- >>206
当たり前のことを言い出して、いきなりどうした
- 212 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 23:01:08.57 ID:gigvK4EO0.net]
- >>207
戻らないmain(?)へ宛
- 213 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 23:14:20.58 ID:7mC+0LM10.net]
- >>208
なるほど理解した 『戻らないmain』は[[noreturn]]のことだと思ったので理解できずスルーしていた 人に『リスパダールちゃんと飲めとあれほど』と言って自分が飲み忘れたのかと
- 214 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 23:26:22.29 ID:7mC+0LM10.net]
- >>203
CStringは知らないが、stringは恐らく同じ sizeof(STR()[0]) →sizeof (char &型の左辺値) →sizeof (char)と同じ sizeof(decltype(STR()[0])) →sizeof (decltype(char &型の左辺値)) →sizeof (char &型) →sizeof (char)と同じ
- 215 名前:191 (アウアウカー Sac7-/Qox) mailto:sage [2017/01/23(月) 09:48:36.48 ID:SwVOU3U8a.net]
- >203
vc++2015で deltype をぬくと、関数に[] は出来ません、みたいなエラーで通りませんでした。 STR()をコンストラクタではなく、関数と思ってるんだと思います。
- 216 名前:デフォルトの名無しさん (オッペケ Sr87-mcUU) mailto:sage [2017/01/23(月) 17:40:29.94 ID:oJYEiyR6r.net]
- 宣言に解釈できるときは宣言として解釈
みたいなルールだっけ
- 217 名前:デフォルトの名無しさん (ワッチョイ ff9f-tc54) mailto:sage [2017/01/23(月) 18:40:50.71 ID:FReCyx8S0.net]
- コンストラクタ ⊆ 関数
- 218 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/23(月) 19:40:02.64 ID:Ij4EmhsFa.net]
- アンダーバー要らなくね?
- 219 名前:デフォルトの名無しさん (ワッチョイ ffcc-DOWB) mailto:sage [2017/01/24(火) 03:03:03.61 ID:ch78KtiL0.net]
- MFCとか何処のバカが設計したんだろうな
とっくに絶滅しているもんだとおもっていたぜw
- 220 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/24(火) 03:50:21.48 ID:nvNd8iP10.net]
- それより優れたものを設計してから言えよな
- 221 名前:デフォルトの名無しさん (ワッチョイ f302-JQ1R) mailto:sage [2017/01/24(火) 03:56:08.97 ID:Af36V4kC0.net]
- >>216←今日のバカ
- 222 名前:デフォルトの名無しさん (ワッチョイ 137b-Eksc) [2017/01/24(火) 11:11:02.03 ID:dVVoZ7Su0.net]
- MFCが作られた時代を考えられないやつのほうがバカなんだよなあ
あれはWin32APIの薄いラッパでしかないから 文句あるなら別のライブラリを使えばいいだけの話、それも出来ないならやっぱりお前が無能でバカ
- 223 名前:デフォルトの名無しさん (スップ Sd1f-xrkK) [2017/01/24(火) 11:33:11.15 ID:9X3I9Jqtd.net]
- int (*func)(int) = &hoge;
func = nullptr; funcへの代入をできないようにconst付けたいのですが どう書けばいいですか。 usingやtypedefは使わない方法でお願いします。 あとメンバ関数への参照はどう記述すればいいですか int (hage::*func)(int) = &hage::test; の参照版です
- 224 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/24(火) 11:41:16.20 ID:GCEfrzc1a.net]
- 益のない煽りはよしなよ(・ิω・ิ)
- 225 名前:デフォルトの名無しさん (ワッチョイ 7330-J7L1) mailto:sage [2017/01/24(火) 12:11:20.65 ID:ekWjtoGq0.net]
- >>219
int (* const func)(int) = &hoge; int (piyo::* mf0)(int) = &piyo::test; int (piyo::* & mf1)(int) = mf0; int (piyo::* const & mf2)(int) = &piyo::test;
- 226 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/24(火) 12:13:02.49 ID:NfDXKGen0.net]
- >>211
そっか sizeof だと式と型の曖昧さが問題になるけど decltype なら式しか取らないから曖昧さを消せるのか。
- 227 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/24(火) 12:13:28.46 ID:NfDXKGen0.net]
- >>219
[dcl.mptr]/3 (Note) "There is no "reference-to-member" type in C++."
- 228 名前:デフォルトの名無しさん (スップ Sd1f-xrkK) [2017/01/24(火) 12:19:40.53 ID:9X3I9Jqtd.net]
- >>221
それだとメンバ関数のポインタの参照になってませんか int (&func)(int) = hoge; のメンバ関数版はできないでしょうか constの件はうまくいきました
- 229 名前:デフォルトの名無しさん (ワッチョイ ffd9-iijN) mailto:sage [2017/01/24(火) 13:24:18.69 ID:kmpgWA440.net]
- >>224
thisが必要になるから無理なんじゃないの それよりクラス内でメンバ関数へのポインタを書くとthisが必要になる
- 230 名前:デフォルトの名無しさん (ワッチョイ 6f5b-OQjX) mailto:sage [2017/01/24(火) 21:23:55.09 ID:GIi5sfFU0.net]
- 一生こういう些末なところに引っかかって
中身を書けない人生を送るんだろうな〜
- 231 名前:デフォルトの名無しさん (ワッチョイ cf42-Wde1) mailto:sage [2017/01/25(水) 00:27:17.93 ID:I9ZrCxSQ0.net]
- uint8_tとbasic_ifstream組み合わせるといろいろ面倒なんだけど、みなバイナリファイル読み込むときどうしてんの?普通にchar使っ使う?
- 232 名前:デフォルトの名無しさん (オッペケ Sr87-mcUU) mailto:sage [2017/01/25(水) 00:35:21.87 ID:KGxAJ6V6r.net]
- バイナリでchar使うのは30年前の老人の発想
- 233 名前:デフォルトの名無しさん (ササクッテロレ Sp87-Taza) mailto:sage [2017/01/25(水) 00:51:14.53 ID:/+qbj4+Vp.net]
- fopenでおk
- 234 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/25(水) 01:30:42.64 ID:5KwEWhG70.net]
- 他の型をバイト列として解釈するときは(unsigned )charしか許されてないから普通にchar使う
- 235 名前:デフォルトの名無しさん (ワッチョイ ff17-SmTw) [2017/01/25(水) 02:33:17.29 ID:LUWqNFoa0.net]
- fgetc() の戻り値を直接 char 変数に代入して EOF(=-1)判定するヘマ。あるある
- 236 名前:デフォルトの名無しさん (ワンミングク MM9f-cBXx) mailto:sage [2017/01/25(水) 04:12:15.84 ID:nJO+CT7AM.net]
- ねぇよ
- 237 名前:デフォルトの名無しさん (アウアウウー Sa67-OTU1) mailto:sage [2017/01/25(水) 15:31:39.49 ID:uJriqNlza.net]
- fopen、fgets系は使わないな。処理をFILE*依存にしたくない
>>230 >>228が言ってるのはそういう意味のcharじゃないでしょ
- 238 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/25(水) 21:44:43.91 ID:gbQNFS3L0.net]
- FILE*に依存しないとしてじゃあ何を使うんだ?
intにも依存したくないのか?
- 239 名前:デフォルトの名無しさん (ワンミングク MM9f-cBXx) mailto:sage [2017/01/25(水) 22:01:41.63 ID:nJO+CT7AM.net]
- fileno して read/writeかな
- 240 名前:デフォルトの名無しさん (ワッチョイ aacc-X95Y) mailto:sage [2017/01/26(木) 00:52:19.97 ID:GN6UrdAH0.net]
- おまいら相変わらず抵レベルな話題しているな
- 241 名前:デフォルトの名無しさん (ワッチョイ 6f02-FuHd) mailto:sage [2017/01/26(木) 02:07:00.45 ID:cRvsGxqc0.net]
- 高レベルな人が2ch何か見てるわけないからな
- 242 名前:デフォルトの名無しさん (ワッチョイ 2613-AZYz) mailto:sage [2017/01/26(木) 06:24:12.10 ID:XBNxNxvo0.net]
- >>237
FILE * を使う人はどうして2chをみないのか?iostream な人はどうなるのか?
- 243 名前:デフォルトの名無しさん (スップ Sdca-kwgD) [2017/01/26(木) 08:04:45.44 ID:fFyxUIyid.net]
- プログラミングにはCBDオイルというのが有効だそうです。アイデアが治療に有効するので安倍内閣総理大臣も持病に使っているそうです。
ビル・ゲイツもこれで億万長者になれました
- 244 名前:デフォルトの名無しさん (JP 0H16-T3y8) mailto:sage [2017/01/26(木) 13:11:34.03 ID:lD0mvySBH.net]
- 低レイヤーな釣りですね
- 245 名前:デフォルトの名無しさん (ワッチョイ 3e24-XYXB) [2017/01/26(木) 18:22:33.18 ID:A9/xu7Tb0.net]
- 物理層?
- 246 名前:デフォルトの名無しさん (ワッチョイ aacc-X95Y) mailto:sage [2017/01/29(日) 15:48:31.23 ID:Hm/zwJzS0.net]
- この処理低レベルだねぇと言われてムキーっとなるヤツ→素人童貞
この処理低レベルだねぇと言われて得意げにほくそ笑むヤツ→玄人
- 247 名前:デフォルトの名無しさん (ワッチョイ af7b-FuHd) mailto:sage [2017/01/29(日) 16:07:03.50 ID:K+/fnyLa0.net]
- すみません 低レベルな処理がが好きなんで
- 248 名前:デフォルトの名無しさん (ワッチョイ 1bc9-kHcU) mailto:sage [2017/01/29(日) 16:12:04.90 ID:2ZaFXkbr0.net]
- 環境・処理系固有の事情やバグに悩まされてばかりで
幸せな顔をして仕事をしている人を見たことがない
- 249 名前:デフォルトの名無しさん (アウアウカー Sa5b-seiz) mailto:sage [2017/01/29(日) 16:31:19.45 ID:sujTTxNda.net]
- 低レイヤって言えばいいのよ
- 250 名前:デフォルトの名無しさん (ワッチョイ 0ac0-H6k8) mailto:sage [2017/01/29(日) 22:01:55.93 ID:F8NpKYaN0.net]
- コスプレイヤーの仲間かな
- 251 名前:デフォルトの名無しさん (ワッチョイ 3e24-BAqL) [2017/01/30(月) 21:07:15.53 ID:P5tJpKPw0.net]
- >>228
std::fstream::readの引数が【なぜ】charなのか 理解できないアフォ?
- 252 名前:デフォルトの名無しさん (ワッチョイ 6fc9-a+zf) mailto:sage [2017/02/01(水) 22:16:18.72 ID:zf0e/zUB0.net]
- 30年前の設計だからだ!
- 253 名前:デフォルトの名無しさん (ワントンキン MM1a-9Rjx) [2017/02/01(水) 22:52:40.44 ID:mWAIN14mM.net]
- むしろバイナリでchar以外何使うんだ?
- 254 名前:デフォルトの名無しさん (ワッチョイ 137b-1ST5) mailto:sage [2017/02/02(木) 00:40:35.30 ID:kju30PyH0.net]
- いやバイナリならどう読もうが書こうがいいと思うが。
てか疑問の意味がわからん。
- 255 名前:デフォルトの名無しさん (ワッチョイ 7fcf-1ST5) mailto:sage [2017/02/02(木) 01:35:32.10 ID:FXYEZ0RW0.net]
- >>250 そんなんじゃ type based aliasing rule に殺されるよ
- 256 名前:デフォルトの名無しさん (ワッチョイ 1302-1ST5) mailto:sage [2017/02/02(木) 01:58:08.09 ID:hMTSyXzS0.net]
- 何か動作がおかしいときになってから考えれば良いんだよ
標準的な環境では考える必要は無いこと
- 257 名前:デフォルトの名無しさん (ワッチョイ cf24-1aN8) [2017/02/02(木) 22:10:32.43 ID:1pIxEkoa0.net]
- 真性アフォが早くも三名か。嘆かわしい。
- 258 名前:デフォルトの名無しさん (オッペケ Sra7-dUno) mailto:sage [2017/02/03(金) 08:10:44.86 ID:HxuiJzZXr.net]
- 真性のアフォの内の二人くらいは
たいてい片山の自演
- 259 名前:デフォルトの名無しさん (スップ Sd9f-aC2u) mailto:sage [2017/02/03(金) 13:51:28.33 ID:+x5EsLXNd.net]
- 新卒一年目で過去のコードをバージョンアップさせる業務についてるんだけど
会社のコードってなんであんなにdefine切ったりtypedefしまくってるんだ? 可読性低くない?始めて作った人には良いだろうけど後のこと考えるとデメリットなんではって思うんだけど...
- 260 名前:デフォルトの名無しさん (ワッチョイ 6f6c-i1/f) mailto:sage [2017/02/03(金) 13:57:14.34 ID:Fv/X2f+d0.net]
- 場合によるからなんとも
- 261 名前:デフォルトの名無しさん (ワッチョイ 7f7b-1ST5) mailto:sage [2017/02/03(金) 15:21:22.58 ID:cyynpkXi0.net]
- 一年目か凄いね
- 262 名前:デフォルトの名無しさん (アウアウカー Sae7-mIyn) mailto:sage [2017/02/03(金) 16:26:23.88 ID:oWJS3iiDa.net]
- スマン、片山って誰ンゴ?
- 263 名前:デフォルトの名無しさん (スップ Sd9f-aC2u) mailto:sage [2017/02/03(金) 17:44:58.85 ID:+x5EsLXNd.net]
- >>256
それを言っちゃあおしまいだよ...と言いたいけどまさにそうか windowsapiが絡んでくると本当にわけがわからなくなる MSDNも読みにくいし
- 264 名前:デフォルトの名無しさん (ブーイモ MMc7-plQq) mailto:sage [2017/02/03(金) 19:35:01.87 ID:8SRwU46KM.net]
- 参考までに、どんなdefIneやtypedefなん?
- 265 名前:デフォルトの名無しさん (ワントンキン MM1f-fOGj) mailto:sage [2017/02/03(金) 21:14:55.23 ID:DgoKILm5M.net]
- >>255
情報が増えるtypedefは正義 たとえば、 typedef std::vector<int> personal_id_array_type; 減るtypedefはゴミ たとえば、 typedef std::vector<int> array_type;
- 266 名前:デフォルトの名無しさん (ワッチョイ a3a6-0MWP) mailto:sage [2017/02/03(金) 21:24:44.53 ID:2s9sq5BM0.net]
- >>261
情報の増減がどこにあると?
- 267 名前:デフォルトの名無しさん (ワッチョイ 937b-aC2u) mailto:sage [2017/02/03(金) 21:43:49.02 ID:flkT/o5k0.net]
- >>260
>>261の前者・後者両方ともある あと色々な名前で__stdcallが切られてたりして読むのがきつい
- 268 名前:デフォルトの名無しさん (ワッチョイ a37b-jpzQ) [2017/02/03(金) 22:05:00.81 ID:ubtIaYbs0.net]
- ちなみにお前らの思うきれいなソースって具体的にどれよ
- 269 名前:デフォルトの名無しさん (スッップ Sd9f-oUAv) [2017/02/03(金) 22:11:40.27 ID:7t2mdctmd.net]
- glm
- 270 名前:デフォルトの名無しさん (ワッチョイ cf24-1aN8) [2017/02/03(金) 22:55:16.36 ID:aXFSiqlm0.net]
- 261が言ってるのは
システムハンガリアンとアプリケーションハンガリアンてことだ ハンガリー記法に限らず意味づけと言うまでもないことを どう位置づけるべきかってこと
- 271 名前:デフォルトの名無しさん (ワッチョイ c35b-0MWP) mailto:sage [2017/02/03(金) 23:39:20.39 ID:CYbB7nGp0.net]
- >>255
変更しやすくする為じゃないの? 一箇所でそれ関連を纏めて変更したいんでしょ。 今は偶々同じ std:vector<int> なだけで。
- 272 名前:デフォルトの名無しさん (ワッチョイ 1302-1ST5) mailto:sage [2017/02/04(土) 00:17:30.98 ID:DV7gEIN40.net]
- m_ulDataCntとか全く意味を持たない変数名が多用されてて辛いわ
コメントも無い
- 273 名前:デフォルトの名無しさん (ワッチョイ ffc0-Sup+) mailto:sage [2017/02/04(土) 05:48:10.84 ID:/r5Uxr2+0.net]
- >>264
ソースは俺
- 274 名前:デフォルトの名無しさん (ワッチョイ 937b-aC2u) mailto:sage [2017/02/04(土) 06:49:15.89 ID:JWHU8o9P0.net]
- >>267
なんか小難しい 定義されたものをさらに定義して さらにさらに定義してってのをやってるのも同じなんかな? 見たことない型を追うだけで何ヵ所も追わないといけなくて大変 コメントもないし
- 275 名前:デフォルトの名無しさん (ワッチョイ d3dc-0e9Z) mailto:sage [2017/02/04(土) 07:32:17.23 ID:uizo/+L30.net]
- >>268
字面だけで推測するなら m_ulDataCnt は m_ クラスのメンバ変数である ul unsigned long DataCnt データの個数 てな感じに見えるね。 元のソースファイルが一貫した命名規則を使ってれば それがどんな規則であれ、見てるうちに慣れてくると思うよ。
- 276 名前:デフォルトの名無しさん (ワッチョイ 7fcc-ysPd) mailto:sage [2017/02/04(土) 07:39:17.67 ID:6QMeFViK0.net]
- クソみてぇな命名規則
- 277 名前:デフォルトの名無しさん (ワッチョイ c35b-0MWP) mailto:sage [2017/02/04(土) 08:42:25.92 ID:UEIbCXwH0.net]
- >>270
基本的にはそうでしょ。 ある物をdoubleにするかfloatで済ますかという場合、系統毎にtypedefをしてそれを使うしかない。 クラスの継承も同じだと思うけど。 というか読み方間違ってるだろ。まずは縦に読まずに横に読めよ。 そしてそれ以前に上司に聞けよ。 どのみちソースは出せないのだろうから、ここでいくら
- 278 名前:聞いてもかなり憶測を含んだ回答しか得られない。
コメントが無いのを問題に思うのなら、コメントを付けるのもお前の仕事だろ。 ただ正直言って、m_ulDateCntは>>271の言うとおりだろうし、そんなところにコメントがあっても嬉しくない。 多分君とそのソースでコメント作成基準に大幅にずれがある。 それは上司と打ち合わせしないと駄目だ。 最近の傾向としては、「コード読めば分かることをコメントするな!」みたいなのがあるが、 君はまさにその類のコメントを付けようとしている。 ただ逆に、何事であってもコメントを付けて二重化し「間違っていない」事を示す文化の所もある。 いずれにしても合わせるしかないんだから上司に聞け。 [] - [ここ壊れてます]
- 279 名前:デフォルトの名無しさん (ワッチョイ a37b-jpzQ) [2017/02/04(土) 08:49:53.56 ID:XS0fIkHD0.net]
- とりあえずシステムハンガリアンは糞
- 280 名前:デフォルトの名無しさん (ワッチョイ cf24-1aN8) [2017/02/04(土) 10:35:39.62 ID:BOsvOfBI0.net]
- doubleかfloatかに迷いがあるときはtemplateだろjk
- 281 名前:デフォルトの名無しさん (ワッチョイ cf6b-aC2u) mailto:sage [2017/02/04(土) 20:11:06.99 ID:tL9rMbFt0.net]
- >>271
こういうの読めるようになりたい アンダーバーとかなんか特徴あるんかね?
- 282 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK67-DkDD) mailto:sage [2017/02/04(土) 20:13:21.29 ID:sK4bvJ1nK.net]
- >>276
MFCのソース見れば時代遅れのハンガリアンが見れる。
- 283 名前:デフォルトの名無しさん (ワッチョイ 7fcc-ysPd) mailto:sage [2017/02/04(土) 20:29:05.55 ID:6QMeFViK0.net]
- MSのバカ社員が勘違いしてシステムハンガリアンが出来た
- 284 名前:デフォルトの名無しさん (ワッチョイ c35b-0MWP) mailto:sage [2017/02/04(土) 20:32:51.09 ID:UEIbCXwH0.net]
- >>276
むしろどこが読めないんだ? 271以外の解釈はないだろ。
- 285 名前:デフォルトの名無しさん (ワッチョイ 7f3c-ZDta) mailto:sage [2017/02/04(土) 20:36:47.66 ID:pJMir97a0.net]
- >>276
パターン認識って言うか慣れでしょ いろんなソース見てりゃだんだんなれてくるよ
- 286 名前:デフォルトの名無しさん (ワッチョイ cf6b-aC2u) mailto:sage [2017/02/04(土) 20:37:44.99 ID:tL9rMbFt0.net]
- ハンガリアンってなんだ
ってレベルで初めて見るわ >>279 それは規則とか法則とか知ってるから読めるんだろ 大まかに言えば経験が違いすぎる なら読めよって話だけどさ
- 287 名前:デフォルトの名無しさん (ワッチョイ 1341-qcXh) [2017/02/04(土) 20:41:51.99 ID:URlnQv8F0.net]
- 場合によってはハンガリアン記法にすべきものもあるかもしれないけど
全ての変数に対してやるのはどうなんでしょ?
- 288 名前:デフォルトの名無しさん (ワッチョイ 1302-1ST5) mailto:sage [2017/02/04(土) 21:08:08.22 ID:DV7gEIN40.net]
- クラスの先頭にCを付けるのだけは全くの無駄だからやめて
- 289 名前:デフォルトの名無しさん (ワッチョイ a37b-jpzQ) [2017/02/04(土) 21:13:17.38 ID:XS0fIkHD0.net]
- >>282
それでもulとか環境によってサイズが変わる名前付けるのイミフだけどな
- 290 名前:デフォルトの名無しさん (ワッチョイ c35b-0MWP) mailto:sage [2017/02/04(土) 21:14:27.75 ID:UEIbCXwH0.net]
- >>281
いや多分、そのソース見たらそんなんばっかだから大体分かると思うぞ。 一応説明しておくと、 m_: method_ の略。(member_かも?) 頭に付けたらインテリセンスでソートされて便利とか言っていた奴もどこかのスレにいたはず。 (メソッドなのかフィールドなのか一目瞭然ということらしい。既に出ているが頭のCもそういう理由) 他でもルール的に「頭に」何か付けるのはよくある話。 MSのVC++のローカル拡張なら __int64 とか、頭に __(二重アンダースコア) がついている。 googleだとprivateは頭に _ だったかな? (なおgoogleはメソッドは動詞、フィールドは名詞を使えとか言っていたはず) サフィックスはユーザーが勝手に使い、プリフィックスはシステム側でルールとして使う。 ulはそのまま unsigned long の略。Cなら元の型は数種しかないから想像はつくだろ。 DataCntはDataCountの略。短くする時には母音(aiueo)を抜く。(子音だけでも何となく分かるから) そんなに経験の差って程の物でもないと思うが。 もっとも俺は無駄に頭に付けたり略したりしないので、このルールなら嫌いだが。
- 291 名前:デフォルトの名無しさん (ワッチョイ a37b-jpzQ) [2017/02/04(土) 21:24:54.38 ID:XS0fIkHD0.net]
- 補足
* グローバルスコープでアンダースコアで始まる * アンダースコアで始まって大文字が続く * 二重アンダースコアを含む に合致する名前は規格で処理系によって予約されてるからコンパイラとそれに付属する標準ライブラリーを実装する人以外は使っちゃダメ
|

|