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/
411 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:02:30 ] >>406 お前プロジェクトで人の話聞かないで周りに色々迷惑かけてそうだな >>376 から続いてる話なのにどうして「可読性に意味が無い」なんて馬鹿な読み方が出来るんだ?
412 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:02:46 ] move semanticsのディープな話題が出たときには沈黙してるくせに おまえらって奴は
413 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:03:30 ] 頭のおかしい奴が話を引っかき回してるようなので一回寝る
414 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:04:44 ] >>412 ムズカシイ話はワカラナイもん
415 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:04:57 ] >>410 そういや、お金の計算だと三桁ごとにカンマを入れるなぁ。 カンマの代わりに"_"を入れることができると。 int yen = 100_000_000;
416 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:05:26 ] >>403 確かにそう言われてしまうとそうなんだが 識別子中の_とリテラル中の_というのは全く別の扱いになる機能で 一方は全く無意味というのはどうなのかと
417 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:05:43 ] たまたま開いたら面白そうな話してたから参加してるだけ 普段はどんな話してるのか知らない
418 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:06:25 ] 互換性的にはどうなの __1とかって識別子になったっけ
419 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:06:48 ] >>418 途中にしか入れられないようにすれば問題ない。
420 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:09:45 ] ・・・まさか >>413 は >>376 なのか・・・? ・・・ゴクリ。
421 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:14:09 ] もうC++0bにしちゃえよ
422 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:16:00 ] 実際そうなりそうで怖い。2011年。
423 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:26:43 ] そんなに無意味な表記が嫌いなら一生マシン語でコード書いてろ
424 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:33:18 ] プログラミング言語自体、 マシン語のシンタックスシュガーみたいなもんだからな。 あくまでみたいなもんだけど。
425 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:36:17 ] >>412 美少女中学生の話も食い付き悪くてさみしい
426 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:58:02 ] >>425 昔から知的で美人の大学生のおねいさんの方がいいに決まってるんだが...
427 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 21:19:59 ] >>425 そんなオバサンの話されても。
428 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 21:29:25 ] 構成された美少女中学生そのものが意味なのだ パーツのどこそこに意味があるだのないだのとあげつらってみても それらが集合して美少女中学生を構成しない限り意味を成すことはない 美少女中学生の一部分だけ見つづけると観察者はゲシュタルト崩壊を起こす 0b論も同じこと いくら論じてもこの美少女中学生の現時点の美少女っぷりにはなんの影響も与えない 繰り返す 構成された美少女中学生そのものが意味なのだ
429 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:04:51 ] それは脳内美少女中学生ってことで FA?
430 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:08:55 ] お前らバイナリバイナリうるせーんだよ。 #include <boost/static_assert.hpp> template<unsigned int v, unsigned int n> struct binary_i{ private: BOOST_STATIC_ASSERT((n % 10) <= 1); public: enum{ value = (n % 10) + (binary_i<v, n / 10>::value) * 2 }; }; template<unsigned int a> struct binary_i<a, 0>{ enum{ value = 0 }; }; template<unsigned int v> struct binary{ enum{ value = binary_i<v, v>::value }; }; std::cout << binary<1001110101>::value << std::endl;
431 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:13:32 ] 10桁までしか使えないじゃんか・・・。 もっといいマクロならそこら辺に落ちてる。
432 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:16:57 ] 最低128ビットくらいは使いたいんだけど
433 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:18:04 ] 0bでスレが加速するってどんだけスレ違いなんだよ
434 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:22:48 ] 文句があるならそのマクロとやらを使ってとっととこのスレから出て行きやがれ
435 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:31:21 ] ここはconstexprを使った例を出すべきだろ… C++0x的に考えて
436 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:39:07 ] どんな底辺プログラマが書き込んでるんだ?
437 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:39:51 ] boost の static_assert は式版のがないのがうんこだな。 #define BOOST_STATIC_ASSERT_EXPR(b) ((void)(char(*)[(b) ? 1 : -1])0) くらい用意してくれないと constexpr で困る。 ・・・って、constexpr の引数って静的な値として認識されるんだよね?
438 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:03:38 ] >>437 式版の有る無しで何が変わるの? キャストやカンマ演算子は定数式にはなれなかったような気がするし、 静的な式なら評価タイミングも関係ないし、あんまり意味が無いような。
439 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 04:35:03 ] #define 0B_00001111 0xff
440 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 06:56:57 ] そうなのか・・・。 じゃあ constexpr の引数をチェックできないの?
441 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 10:27:41 ] >>440 メタ関数書けば? 外向きに一段 constexpr 関数かませば使いやすくはなるかも。
442 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 10:44:57 ] >>432 2進数を128桁も書きたいというお前がマレw
443 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 13:28:45 ] static_assert の式版とかいうやつを使って 具体的にどういうコードが書きたいのかもうちょっとkwsk
444 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:18:59 ] 式に置換するマクロで #define TOHEX(n) (STATIC_ASSERT_EXPR(sizeof #n <= 9), 0x##n) みたいなことをやってんだけど、 まあこれはそのまあ constexpr にするわけにゃいかんが、 constexpr の引数を静的にチェックしたいと思ってね。 typedef が constexpr の中に入れれるなら別に BOOST_STATIC_ASSERT を使えばいいんだけど、どうだっけ? 無理なら return STATIC_ASSERT_EXPR(hoge < 10), hoge; みたいなことができれば 面白いなあと思ってね。
445 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:37:44 ] いまさらだけど、0b の話って、 www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2378.pdf が採用されたらさらに一般化されて解決されるんじゃないの? 誰も上で話に出してなかったけど ...
446 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:42:09 ] ユーザ定義リテラルは誰か途中で書いてなかったっけ つうか0bの話ししてる奴の大半はドラフトなんか読んでないんじゃね
447 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:38:21 ] >>445 キモイ記法になるから組み込みにして欲しいって話だと思ってた。
448 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:21:30 ] >>445 >>259 を忘れないで。 たぶんこれのことだよね?
449 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:49:32 ] >>259 を理解できていたらここまでスレは加速しない。
450 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:23:02 ] あれって入る見込みありそうなの?
451 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:23:26 ] たぶん無理
452 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 03:11:10 ] 入ったとしても定義できるのはサフィックスだけだから 0bは無理なので厨はお気に召さないだろう
453 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:23:28 ] 別にサフィックス b でいいよ。
454 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:29:49 ] #define b0 0 #define b00 0 #define b000 0 // ... 一つの数値に128通りの#define // = 2^129個の#define
455 名前:445 mailto:sage [2008/04/15(火) 09:59:34 ] すいません、アホな言い合いが続いていたので 259 を読み飛ばしてました。 でも constexpr って今の定義だとそんなに中にいろいろ書けないんじゃ?
456 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:47:23 ] ループを手動でアンロールすればいいっしょ。
457 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:47:45 ] ああ、配列アクセスしてる時点で無理なのか。
458 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:59:46 ] N2378 と最新のドラフト読む限りでは suffix しか無理ながら,とりあえず constexpr リテラル化はできるような? >>259 みたいに for 文を使用 (して,かつ constexpr 化) することは 現在の提案ではできないみたいですけれど
459 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 00:27:15 ] ようやくらしくなってきたが、未解決なのは変わらずか。
460 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:32:48 ] constexpr unsigned char operator "b" (unsigned int value) { return (value % 10 != 0) | ((value / 10 % 10 != 0) << 1) | ...; } このくらいならできるのか?
461 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:28:12 ] 5bitしか扱えないけどね
462 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 07:36:04 ] いつの時代の住人だ
463 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 11:24:41 ] N2378 と N2588 に従うと以下のような感じになるとは思うんですが, いかんせん以下をコンパイルして確認できる環境が存在しないので 間違いがある可能性が高いです. template<char C> unsigned long long binaryDigitToNum(); constexpr unsigned long long binaryDigitToNum<'0'>(){ return 0; } constexpr unsigned long long binaryDigitToNum<'1'>(){ return 1; } template<unsigned long long I, char C, char... TAIL> constexpr unsigned long long binaryLiteralImpl() { return binaryLiteralImpl<I << 1 + binaryDigitToNum<C>(), TAIL>(); } template<unsigned long long I, char C> constexpr unsigned long long binaryLiteralImpl() { return I << 1 + binaryDigitToNum<C>(); } template<char C, char... TAIL> constexpr unsigned long long operator "b" () { return binaryLiteralImpl<0, C, TAIL>(); } 普通の raw-form literal operator だと, '0', '1' 以外が来たときに compile-time error を吐かせる方法がいまいちピンと来なかったので variadic template form を使いました.
464 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 12:22:30 ] しかし、この例をみるにつけても C++0x は変態ですね
465 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 19:32:22 ] これはまだ分かりやすい方だろ。
466 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:30:21 ] 美少女中学生は変態さん。なんと制服の下で身体を縄で縛って学校に行っちゃうのです
467 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:31:32 ] マジレスすると疲れるだけで全然えろくも変態でもない。
468 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:03:57 ] >467は人生の勝ち組
469 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 05:34:54 ] 0b狂がいなくなったら誰もいなくなった
470 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:36:22 ] mailing2008-03読んでるけど、 0bで馬鹿らしくなって>>257 くらいしか書き込んでないw
471 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:53:04 ] 美少女中学生は空を見上げ待ち続けている…
472 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:20:10 ] C++0xで2進リテラルを作成するスレを別に立てたらどうだ?
473 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:22:39 ] 糞スレたてんなよ
474 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:15:32 ] >>473 読まなければ良いのでは?
475 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:22:22 ] 糞スレを立てると無駄なCO2を排出することになります
476 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:31:12 ] 俺様のゲップに含まれるメタンガスに比べれば無視できる量だけどな
477 名前:デフォルトの名無しさん [2008/04/23(水) 08:11:49 ] 美少女中学生が排出したメタンを肺いっぱいに吸い込みたい
478 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:33:53 ] つ (美少女の)硫化水素
479 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:15:45 ] お前らスレタイ0x100回読め
480 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:33:01 ] スレンダーでタイツの似合う美少女中学生が俺の嫁
481 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:35:18 ] 256回読みましたがわかりませんでした
482 名前:デフォルトの名無しさん [2008/04/26(土) 22:18:03 ] >>481 美少女中学生について語ってはならないとは スレタイにもテンプレにも書いてないんだが # 個人的には平面の方が好きなんだけどな
483 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:25:12 ] C++0xは3次元あるいはそれ以上の次元を持つとはどこにも書いていないぞ。 まあ2次元とも決まっていないがな。 #ん、C++タンの出番だな。
484 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:27:23 ] N2582 新しい関数宣言方法(ラムダ式と同じ形にする案) []foo(int x) -> int { return x; }
485 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:30:30 ] [] は大変キモいので、こういうマクロを標準で提供して欲しい。 lambda とかいうヘッダファイルを用意して。 #define labmda [] foo(lambda foo(int x) -> int { return x; });
486 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:33:19 ] typo したがキニシナイ
487 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 00:49:50 ] [] にはもう既に慣れちゃった
488 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:30:50 ] 委員会のキーワード忌避は強迫観念レベルだな
489 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:33:59 ] それほど既存のソースが多すぎるのさ。 そこはしゃーないと思う。 でも、C99 の #define bool _Bool みたいに 互換性を保ちつつキーワードを導入するテクはもっと使ってもいいと思う。
490 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:48:53 ] 無名関数のおかげで無名構造体にコンストラクタとデストラクタを搭載できるようになりました! 大勝利ですね!
491 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 04:06:37 ] 一方ロシアはコンストラクタをthisで定義できるようにした。
492 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:12:49 ] なんでlambda expressionのlambda-return-type-clauseって、 ->を使うんだろ。 コロンじゃだめだったのかな。 たとえば、普通の関数も統一しようぜっていうN2582も、 こんな風に書けるのに。 [] func() : int { return 0 ; }
493 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:35:23 ] #define : -> は無理だったっけ ...
494 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 11:44:20 ] >>492 見た目が違うだけじゃんw
495 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:33:02 ] [] main(int argc, char* argv[]) -> int { //... }
496 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:35:05 ] >>492 コロンはコンストラクタの初期化子と競合しそうだな。
497 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:38:20 ] コンストラクタでは戻り値の型がないから大丈夫じゃね。 文法的な紛らわしさに関してはまああるかもしれないが。
498 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:46:28 ] ECMAScript4ってそんな感じじゃなかったっけ いやだなぁ
499 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:30:15 ] function func() : int { return 0 ; } だったか。ECMAScript4は文法キモすぎて見たくもない。 いつのまにかコンストラクタの初期化子まで採用してるし。
500 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:35:51 ] テンプレートもあるよ! function func.<T>() : T { return new T(); }
501 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:35:43 ] ぐはぁ
502 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:42:16 ] しかしなぜ->なんだ Haskellかよ
503 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:04:22 ] プログラミング言語 Scala pc11.2ch.net/test/read.cgi/tech/1205156417/ Scala違いだ移動しる・・
504 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:49:10 ] returnでいいじゃんかよ コンフリクトはないはずだ [] func() return int { return 0 ; }
505 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:50:51 ] なんかもうどうやってもキモいんだが。
506 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:52:00 ] ラムダ式くらい 100% 型推論でやってくれ。
507 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:53:18 ] そもそもどうしてラムダと形を合わせたいんだ コピペのためか?
508 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:56:04 ] 関数型言語的には→なんだから、 ->でいいんじゃないの?
509 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:58:39 ] 関数型言語的にどうかは知らんしどうでもいいが C系言語的には->は昔からずっと間接参照演算子だ
510 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:13:55 ] 美少女中学生的には -> と [] はブラのホックの両端だから
511 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:26:17 ] >>504 それ、俺も思っていたんだけど、 C++の文法としては、何か違和感あるよね。 ところで、@と$がC++の規格にないのは、何か理由があるの?