[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 09:48 / Filesize : 166 KB / Number-of Response : 901
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++0x 3



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/


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++の規格にないのは、何か理由があるの?

512 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:30:21 ]
[] int foo() { ... } で不都合があったから -> になったんだと思うが、
どんな不都合があったの?

513 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:50:13 ]
returnsのほうがいい



514 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:53:10 ]
>>512
(charからcharへの関数)を引数に取り(intからintへの関数)を返す関数
を引数に取り(charからintへの関数)を返す関数の型を、
C++03(「関数」は「関数へのポインタ」とする)とC++0xで書いてみてくれ。

515 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:58:27 ]
int (*(int (*(*)(char (*)(char)))(int)))(char) のことだよね?

516 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:10:24 ]
グロい

517 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:11:59 ]
まぁ現状十分汚い言語なんだから、
多少醜くなってもいいじゃん

518 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:14:30 ]
>>517
いいこと言うなあ。君のそのレスで俺の気持ちは吹っ切れたよ。

519 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:19:47 ]
[]([]([](char)->char)->([](int)->int))->([](char)->int)

520 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:22:09 ]
typedef char (*ctoc_t)(char);
typedef int (*itoi_t)(int);
typedef int (*itoc_t)(char);
typedef itoi_t (*ctoc_to_itoi_t)(ctoc_t);

typedef itoc_t (*answer_t)(ctoc_to_itoi_t);

こんな型何に使うかは知らんが、使うとしたら
きっと近くでitoc_t型やctoc_to_itoi_t型の変数も必要になるだろ
ならそんなキモい書き方しないで必要なものをtypedefで作るべき

521 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:35:41 ]
>>519の方がわかりやすいが?

522 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:06:50 ]
>>519
これは従来のアナルっぽい記法よりは読みやすいな

523 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:15:37 ]
>>511
いまさらtrigraphやdigraphの要るような記号追加するのもねえ…ってことじゃないかと予想



524 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:38:26 ]
>>523
そういう理由なのかなぁ。
しかし、trigraphやdigraphって廃止しても、それほど互換性の問題も無いんじゃないかなとおもったりするんだけど。
西側の、なまじ7bitで全種類の文字を表せちゃったので、悲惨なことになっている連中も、
結局使ってないみたいだし。

525 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:39:20 ]
>>521
まずそんなものを書く状況自体が無いな。
あっても >>519 も読みづらいから typedef 使うわ。

526 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:51:29 ]
C++でtypedefを禁止したらどんなカオスなコードになるか見てみたい

527 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:53:44 ]
>>526
template メタプログラミングがかなり出来なくなる気が ...

528 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:58:25 ]
>>526
decltype と auto を駆使することになる

529 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 18:05:21 ]
あーはやくautoが欲しい

530 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:02:48 ]
正直、auto 以外、いらん。初期化もまぁあればいいね、程度だし

531 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:46:54 ]
ここまでいじっちゃうともう新しく言語作った方が早い気がするしな。

532 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:51:44 ]
Cとの互換性をとりつつ拡張するのに苦労してんのにそんな事言うなよ

533 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:12:56 ]
互換性無視できる
ネイティブディレクティブとか作ろうよ




534 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:36:05 ]
もう互換性なんかとっくにボロボロなのに今更何を

535 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:37:43 ]
>>530
初期化指定子で初期化指定が完了するのは美しいと思わんか

536 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:54:12 ]
なぁ、これは俺の思い過ごしかもしれんのだが

ヒープ領域って誰が管理してくれるんだ?

ラムダ返されて、それ引数に関数呼び出して
関数の中でグローバルに束縛されて... ... ...

でも, らむだはデストラクションしないとまずいんだろ?


537 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:07:15 ]
関数を動的に生成してるわけじゃないだろ

538 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:17:48 ]
536 に便乗で聞くけど、
例えば C# の場合、ローカル変数を参照するようなラムダ式書くと、
クラスが自動生成されて、ローカル変数参照がメンバ参照に置き換わるんだけど、
そういう状態になった場合、デストラクタはどこで呼ばれるの?

ローカルスコープ内でしか使わないラムダ式ならいいけど、
例えば、「ラムダ式を返す関数」みたいなの作っちゃった場合。

539 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:21:56 ]
そんなのローカル変数のポインタ返してるのと一緒だろ
クラッシュしても自業自得で済まされる話
C++はプログラマを全面的に信頼する言語ですよ

540 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:24:33 ]
>>537
あんまマジにシンタックス見てないんであれなんだが

こんな感じの関数書くとするやん?
f(x, y) {
return [copy x]lambda(y){+ x; ...}
}
この場合, x はスタックじゃなくてヒープに取るしかないと思うんだ

で,
g(f(1), f(2)...)
とかな感じで, 呼び出したら?
f が返す関数に束縛されてる x がコピーされた領域は誰が回収するんだろ?

と、思った


541 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:01:43 ]
ん、よくわからん。
スタックじゃないの?

542 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:04:43 ]
alloca() を思い出した

543 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:08:10 ]
new [...] (...) {...}
はないの?よくわからんけど



544 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:23:24 ]
ラムダ式は関数オブジェクトのシンタックスシュガー
なので、単なる一時オブジェクトとして生成されると思う

545 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:24:34 ]
関数から返せないということか。
何かエセっぽいな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<166KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef