- 1 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 21:53:47 ]
- The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/ wiki ja.wikipedia.org/wiki/C%2B%2B0x C++0x pc11.2ch.net/test/read.cgi/tech/1149440647/ C++0x 2 pc11.2ch.net/test/read.cgi/tech/1191842951/
- 231 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:40:59 ]
- いや32なら簡単だろさすがに
- 232 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:41:41 ]
- >>231は思いっきり勘違い
- 233 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:42:55 ]
- >>230
D ではこう書く。 0b11_0100_0101
- 234 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:43:18 ]
- 特にメモリが4Gに迫って色々あったり2038年問題の影がちらつきだしたこのご時世に
2^31と2^32の10進値も知らないコンピュータ技術者がいるなんて信じたくない
- 235 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:44:27 ]
- だから、概数を覚えていることと全桁そらで言えることは違うって。
- 236 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:45:06 ]
- およそ40億としか覚えてなかった
1048576までなら覚えてるけど
- 237 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:45:36 ]
- 20億代と40億代だと覚えておけば、
細かい値が必要なときだけ電卓でポンでいいだろ。 無駄な事覚えるのはタダのバカ。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:48:05 ]
- 約21億と約43億としか覚えてないなぁ
けど2^24は16777216って覚えてるな
- 239 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:48:14 ]
- >>234
2^10 = K 2^20 = M 2^30 = G で十分だ。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:49:04 ]
- >>238
俺も 16777216 は覚えてるな。 何か覚えやすい並びだしな。
- 241 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:50:18 ]
- >>239
Gってのは文脈によって1073741824・1047586000・1024000000・1000000000を意味する可能性がある 全然十分ではない
- 242 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:51:08 ]
- >>239
2^10=1024も知らないとか冗談だろ?
- 243 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:51:51 ]
- 1024 は流石に知らないと恥ずかしいな。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:53:29 ]
- >>241
例えば伝送速度は1k=1000、メモリ容量などは1k=1024換算だ。 >>242 んなもん覚えてるわ
- 245 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:53:37 ]
- 2^31=2147483648は結構覚えやすいと思うんだけどな
万の区切りで48が2回出てくるし偶数桁目に4,4,3,4って調子よく並んでるし
- 246 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:54:10 ]
- >>241
文脈だって、馬鹿じゃね
- 247 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:54:58 ]
- 2^8 = 256
2^10 = 1024 2^15 = 32768 2^16 = 65536 これはおさえとかないと確かにマズいな
- 248 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:56:38 ]
- データ容量でキロを1000メガを1000000と解釈するのは記録メディア業界だけ?
- 249 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:56:51 ]
- 0xFFFF = 65535
これで覚えてる
- 250 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:58:21 ]
- >>248
メディア業界でも会社によってメガが1000000だったり1024000だったりするから困る (1048576であることはまずないけど)
- 251 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:58:28 ]
- てかC++0xのスレだよな?
- 252 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:59:21 ]
- いつまでも0bなんて粘着に持ち出すゆとりのせいで荒れたじゃないか
- 253 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:04:49 ]
- 0bを導入するメリットがあるとすればフラグを表す定数なんかで
#define FLAG_A 0b00000001 #define FLAG_B 0b00000010 #define FLAG_C 0b00000100 #define FLAG_D 0b00001000 #define FLAG_E 0b00010000 #define FLAG_F 0b00100000 なんて表現ができて初心者がフラグの定義の仕方を直感的に理解できるくらいか? それ以外のメリットが思いつかん・・・
- 254 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:06:21 ]
- #define BIT(n) (1u << (n))
#define FLAG_A BIT(0) #define FLAG_B BIT(1) #define FLAG_C BIT(2) #define FLAG_D BIT(3) #define FLAG_E BIT(4) #define FLAG_F BIT(5) とかの方が分かりやすい
- 255 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:07:07 ]
- 0b literals considered harmful
- 256 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:10:50 ]
- Gauche使え
- 257 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:12:27 ]
- そういう思い込み書き込むスレじゃないからw
マ板行けよ 新しい関数型の記法です。->を使う。 www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm typedef int IFUNC(int); IFUNC* fpif(int); ↓ auto fpif(int)->int(*)(int) template <class T, class U> decltype((*(T*)0)+(*(U*)0)) add(T t, U u); ↓ template <class T, class U> auto add(T t, U u) -> decltype(t+u);
- 258 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:17:28 ]
- コンパイラの都合臭がする記法だよな
- 259 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:19:27 ]
- constexpr long operator prefix"0b"(const char *literal_string){
long n=0; for(; *literal_string; literal_string++){ n = (n << 1) + *literal_string - '0'; } return n } こういうのが出来れば0b厨もおとなしくなるのに
- 260 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:21:37 ]
- なんか盛り上がってると思ったら、記憶力自慢の子が来てたのか。w
- 261 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:21:55 ]
- typedefの何が気に食わなくてこんなキモい構文を
- 262 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:36:31 ]
- こういうのを見るとC/C++って下品なプログラミング言語だと思うよな。
- 263 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:37:58 ]
- >>262
そこがいい。下品な俺たちにぴったりなのだ。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:50:37 ]
- >>261
templateの例はtypedefじゃきついだろ。 関数型表記の無理やり感がついに破綻しましたね。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:51:05 ]
- >>260
というかその人達、これだけ会話が続いてもまだ 「16種類のビットパターンを覚えられないから0b表記を欲しがっている」 と思い込んでるのが痛い。
- 266 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:58:44 ]
- >>265
ごめん、違うの?
- 267 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:59:45 ]
- >>266
違うに決まってるだろ。 その記憶力でちゃんと日本語を覚えような。
- 268 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:04:25 ]
- ごめんなさいバカなのでわかりません
0bには16進のビットパターンを覚えられないゆとりのため以外にどのような利点があるのでしょうか
- 269 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:06:34 ]
- 最近のGCCは独自拡張で0bを持っている。
- 270 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:07:39 ]
- >>268
バーカバーカ
- 271 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:09:47 ]
- >>268
保守性の向上
- 272 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:10:36 ]
- 0bでは保守性向上しないだろ・・・
- 273 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:12:12 ]
- 他の言語に採用されてる事に関しては疑問を持たないのかね
- 274 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:18:02 ]
- 何を言おうと標準化委員会に却下された時点で0b厨の敗北は決定している
- 275 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:20:56 ]
- >>271
0bの方が読みやすい、だから保守性が向上するんだ!という主張ですね? つまり0xを読めない奴でも保守できるようにするための機能ということですから 16進のビットパターンを覚えられないゆとりのための機能という意味ですね 解答になってないですね 「16進のビットパターンを覚えられないゆとりのため」以外の理由を教えて下さい この馬鹿な私に教えて下さい
- 276 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:21:57 ]
- >>274
こういう下品な理由こそが C++ に相応しい
- 277 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:22:32 ]
- >>275
君は馬鹿というより単純だと思う
- 278 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:24:26 ]
- 面倒くさいから
「ゆとりと仕事する(或いは保守をやらせる)かも知れないから」 でいいんじゃね
- 279 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:24:42 ]
- >>275
一行目と二行目の間に凄い飛躍があるなw
- 280 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:26:55 ]
- >>279
0xが読めるなら0xだろうと0bだろうと保守性は変わらないんですから 0xが読めない人にのみ意味のある保守性の向上ということですよね? 普通に読めばそういう意味になると思いますが どのような飛躍があるのか教えて下さい 単純な私に教えて下さい
- 281 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:06 ]
- 読める人でも分かりやすさに差があるし、
2進で書くか16進で書くかによって コードに込められた意図に差が出ることだってあるだろ。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:06 ]
- >>280
「読める」と「読みやすい」の違いは判る?
- 283 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:27 ]
- そもそも16種類のビットパターンすら覚えられないような奴が
73種類もある(しかも多くは多重に意味のある)C++の予約語を覚えられるわけがないから そういう奴は普通に考えてC++をいじるような仕事が出来るわけがないと思うんだが 0b入れたとしてもさ
- 284 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:32:20 ]
- 駄目だ、こいつ粘着だよw
- 285 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:32:53 ]
- >>280
読みやすさなら圧倒的に16進だろ 0bには別のメリットがあるに決まってるじゃん馬鹿なの?
- 286 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:16 ]
- 16進テトリスとかやったことあるけど、
やりづらいことこの上なかったぞw
- 287 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:17 ]
- >>283
本当に単純なんだね
- 288 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:33:36 ]
- >>281
そんな意図はコメントやドキュメントに書くべきであって リテラルの形式に勝手にそんな暗黙の約束を置く方がかえって保守性下がると思うんだが
- 289 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:34:54 ]
- じゃあ for とか while とかじゃなくて goto 使ってください。
- 290 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:35:29 ]
- >>282
それはもちろんゆとりでも対応表を片手に一つずつ変換していけば読むこと自体は出来るに決まっていますから 今までの「読める」はすべて「読みやすい」の意味だと思って下さい 言葉が足りなくて申し訳ありませんでした では改めて「16進のビットパターンを覚えられなくて0xを読みにくいゆとりのため」以外の理由を教えて下さい
- 291 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:35:33 ]
- 10進と16進の使い分けだってやってるだろ?
まさか意味も無く16進使ってるわけはないよな?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:36:41 ]
- >>288
Unixのchmodも10進数で書いちゃう人ですか?
- 293 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:38:17 ]
- >>289
forが出てくれば繰り返しだとわかるけど コード中に「0xAA」と「0b10101010」が説明なしに出てきて 一体どうやってプログラマの意図をくみ取ればいいんだ? 同じ数だぞ?
- 294 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:38:32 ]
- chmodを16進で書くのも読みづらいな。
あれは8進で書くべき。 2進が欲しいってのも似たような理由だな。 2進の方が分かりやすい所では2進が使えた方がいい。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:39:59 ]
- 2進が使いやすいとしたら4ビットせいぜい8ビットまでだろ
それ以上はかえって読みにくくなるし 読みやすさのためだけなら必要ないと思うんだけど
- 296 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:40:16 ]
- >>293
例えば5ビットずつ情報を与えたい場合であれば、 0b11011_11101_01011 と書けた方がいいだろう。
- 297 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:40:52 ]
- 10進と16進の使い分けはそりゃあるだろう
おおむね「ビットに意味のある数」が16進でそうじゃない数を10進で書くよな さて、2進で書きたい数というのは多分「ビットに意味のある数」だろう 16進とどう使い分けるんだ?
- 298 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:41:22 ]
- 5ビットずつってのは16ビットRGBを扱う際に出てくる。
- 299 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:42:18 ]
- 0bが却下されてる理由なんだったっけ
ビットオーダーが環境依存だからだっけ? でもシフト演算子の << >> の方向にあわせて0bの記法をきめちゃってよさそうなのにな。
- 300 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:42:30 ]
- そんな書き方16進数でもできないじゃん
これ_挟むの
- 301 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:44:22 ]
- できるようにすればいいじゃん。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:44:54 ]
- RGB(なんたら)ってマクロでも使えばいいんじゃないの
- 303 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:45:41 ]
- >>299
ビットオーダーって単なる値には特に関係ないんじゃないかと思うんだが。 つか、それ言い出すと16進数もやばいんじゃね?
- 304 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:46:26 ]
- メモリ上にはそんな区切りはどこにも存在しないのに
勝手にそんなもの入れられるようにして何が嬉しいんだ?
- 305 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:46:53 ]
- その釣りは流石に稚拙だ
- 306 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:49:16 ]
- 0x__________________1____________________________0________________________
とか書けるようになるんだろ きめえ
- 307 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:54:26 ]
- _ を連続させられないようにすればいいだけだろ・・・そんなの。
- 308 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:56:11 ]
- >>307
お前はマクロ引数の反省を全く学んでいないんだな
- 309 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:57:08 ]
- ?
- 310 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:57:27 ]
- 個人的にはどっちでもいい。(特に欲しいとは思わないけど、入っても構わない)
おまえらの執着心には感心する。
- 311 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:01:14 ]
- 導入されてる言語があって、そこで別に不自由ないんだから、
導入されても別に構わんだろ。 使いたくなきゃ使わなきゃいいんだし。
- 312 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:01:32 ]
- ここは変態言語らしく1〜36進数までサポートしようぜ
- 313 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:04:42 ]
- >>311
そんなのはC++の標準団体に言えよ とりあえずそんな消極的な理由じゃ話にならない
- 314 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:06:41 ]
- 委員会に却下された理由ってなんなの?
- 315 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:06:53 ]
- そういえば85進数でIPv6書こうっていうRFCがあったな
- 316 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:07:25 ]
- おお・・・驚異の1進数・・・
でも、便利そうな状況はありそうな気がするから困る。 const char hoge[] = "abcdefg"; size_t btof = 0u11111; とか。
- 317 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:07:52 ]
- 等幅で見て
- 318 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:14:30 ]
- 一進数は便利だ
数えれば幾つかすぐ分かる
- 319 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:17:40 ]
- #define unitary(s) (sizeof(s)-1)
unitary("11111"); /* == 5 */
- 320 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:36 ]
- unitaryじゃなくてunaryか
- 321 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:48 ]
- そこはこうだろ・・・
#define unitary(u) (sizeof #u - 1) unitary(11111); /* == 5 */
- 322 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:23:46 ]
- 今でも8進数の数字に8や9が使えちゃうことだし
0b入れたとしても中で2や3が使えることになってカオスになりそうだからいらない
- 323 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:25:36 ]
- エラーになるけど??
- 324 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:26:17 ]
- コンパイラが親切なだけじゃないの?
規格上はおkだったはず
- 325 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:34:45 ]
- octal-literal:
0 octal-literal octal-digit octal-digit: 0 1 2 3 4 5 6 7 と書いてあるが・・・。
- 326 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:36:29 ]
- あれ?
昔の話だったかもしれん。すまん
- 327 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:46:32 ]
- K&Rの2版で8と9は使えなくなったと書かれていたが。
- 328 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:18:06 ]
- C89の仕様ができるまでは、
そのへんルーズな処理系がいっぱいあってなゴホゴホ
- 329 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:44:18 ]
- ビットマスクには2進を使いたいじゃんね
- 330 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:25:44 ]
- 15年前にアセンブラからCに移った時は欲しくて仕方なかったけど、
リテラル書くって、要するにマジックナンバー書くってことじゃん。 ダメ。 マクロなり変数なり関数なり、名前を付けてそれ使いなさい。 だから不要。
- 331 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:28:58 ]
- その理屈だと整数リテラルはすべて禁止だな
|

|