1 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:29:11 ] The C++ Standards Committee ttp://www.open-std.org/jtc1/sc22/wg21/ 前スレ pc11.2ch.net/test/read.cgi/tech/1149440647/
2 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:44:39 ] スレタイはC++1xだろ…常考
3 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:29:39 ] ん? こっち使うの
4 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:33:37 ] よし、こっちを使おうぜ
5 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:52:06 ] >>1 乙
6 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:53:14 ] こっちでいくか。
7 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:54:53 ] 転載だけど、こうなるらしい。 --- C++98 Code --- vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); vector<int>::iterator i = find(v.begin(), v.end(), 2); --- C++0x Code --- vector<int> v = { 1, 2, 3 }; auto i = find(v, 2); STLヴァリヴァリな人にはとってもラクチンになる予感。
8 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:05:18 ] 前スレから ttp://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!159.entry 2007年10月に最初の完全なドラフト 2008年10月に最終文書 2009年に "ISO/IEC 14883(2009): Programming Language C++" ……という予定で今のところ作業中らしい。
9 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:15:41 ] vector<int> v = { 1, 2, 3 }; これってmapにも使えるのかな map<int,string> m = {{0,"hoge"},{5,"hage"}} とかできると個人的にはうれしい
10 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:41:24 ] >>7 みたいな宣言に対応するためにva_listみたいなの使ってコンストラクタ実装することになるの? うえー
11 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 23:00:04 ] >10 va_list よりは大分ましだと思うが、std::initializer_list<T> を使うことになる。 www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2215.pdf www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2385.pdf >9 std::map にも initializer_list を受けるコンストラクタができるようなので可能。また、n2215 の 5 章にほぼ同じ例がある。 www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2220.pdf
12 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 23:04:28 ] >>10 コンストラクタの引数に std::initializer_list<T> を指定するだけらしいよ。
13 名前:デフォルトの名無しさん [2007/10/08(月) 23:16:03 ] ユーザー定義リテラルをつかって template <typename T> std::complex<T> operator"i"(T arg) { return std::complex<T>(T(0), arg); } として、 std::complex<double> z = 1.0 + 1.0i; でいいのかな?
14 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 23:41:48 ] constexpr をつけたほうがいいのでは?
15 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 00:14:38 ] clampみたいな、クロージャは入るのかな。
16 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 00:28:29 ] 最新のworking draftはこれかな。 ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2369.pdf
17 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 00:43:08 ] >13 コーディング規約とかで真っ先に使用禁止になりそうな機能だ(w
18 名前:デフォルトの名無しさん [2007/10/09(火) 01:05:02 ] >>17 まあ適切につかえば便利。>>15 と初期化リストとあわせて vector<complex<duble>> v = { 1.0, 0.707 - 0.707i, 0.6 + 0.8i, 1.0i }; こう書けるし。これを従来の方法で書くのはうんざりするよ。
19 名前:デフォルトの名無しさん [2007/10/09(火) 01:06:12 ] >>18 > >>15 と初期化リストとあわせて ↑>>15 じゃなくて >>13 でした。
20 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 01:30:47 ] >>18 ×duble ○double
21 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 01:35:53 ] using duble = double;
22 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 01:51:47 ] #define duble double
23 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 01:52:32 ] typedef double duble;
24 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 02:29:02 ] >>21-23 それはコーディング規約で禁止になるなwww
25 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 02:30:35 ] そんなんバレなきゃ大丈夫
26 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 09:40:10 ] #define private public
27 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 12:47:17 ] #define class struct
28 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 15:46:48 ] C++はVisual C++のバグとの戦いの歴史 Boostは今も戦いの最中 0xはとんでもないバグだらけと予想
29 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:36:27 ] VC++が0xに対応するのなんて15年後くらいだろ。
30 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:42:21 ] >>29 VC7.1になるあたりの頃にHerb SutterがMSに入って直しまくったわけだが まだ彼がMSにいるならすぐ追いつくんじゃないのかなあ
31 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:43:08 ] もうC++はC++/CLRしかサポートしないんじゃないか?
32 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:44:10 ] × C++/CLR ○ C++/CLI
33 名前:デフォルトの名無しさん [2007/10/09(火) 16:48:49 ] そこで C++0x/CLI の登場ですよ!
34 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 17:01:14 ] >>29 にわかだな MSは速攻対応するに決まってるだろ ただしバグだらけ
35 名前:デフォルトの名無しさん [2007/10/09(火) 17:02:05 ] 乳首ポチポチおxんこスリットクリトリス!?
36 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 17:03:10 ] 取り敢えずサンプルコードの3割がコンパイル通って、そのうち4割が正常に動くコンパイラ。
37 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 20:08:28 ] boostに#ifdefの嵐が
38 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 12:35:20 ] また対応に数年かけるのは目に見えてるぜ・・・
39 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 18:23:55 ] そうこうしてるうちにC++1xがでるな。
40 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 05:59:41 ] Visual C++ は boost のレグレッションテストでは かなりいい成績出してるようだが。 ただし Boost 側の対処が頑張っているからではあるのだが。 それ言ったら Boost のコード読むと Borland C++ 向けの #ifdef のほうが多い気もする。 というわけで、さっさと auto による型推定はできるようにしてほしい。 正直、テンプレートとか複雑になってくるともうわけわかめになるから。 このコンテナ使おうとしてるんだからイテレータの型くらい理解してくれよ、 とか思うこともある。
41 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 06:27:54 ] auto,decltype,pp,operatorを駆使すると もっと難解なコード書けるけどな。
42 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 08:24:12 ] ところでTRはいくつまで出るんだ? 3ぐらい?
43 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 10:49:04 ] boost名前空間に配置されているライブラリーを多用しているんだけど tr1 とかの名前空間に配置変えされていくの? 最終的には std の下に入るの?
44 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 17:50:13 ] TR?は一般人は無関係。
45 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 18:43:03 ] スマートポインタの利用が一般的になれば、 それだけで劇的に違うと思うんだがなあ
46 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 19:36:01 ] >>43 working draftではもうstdに入ってる>>16
47 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 19:39:26 ] せっかく名前空間があるのに 名前の重複を避けるためにunorderd_map とか妙な名前になってるらしいですが、 現実にhash(hash_map?)をstd名前空間に定義しちゃってる 著名なライブラリとかってあるんですか? そんなん「stdに書いちゃう奴が悪いだろ」で終了の気がするんですが あるいはマクロでもあるのかな・・
48 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 21:24:46 ] 名前空間の階層化宣言て入ってるんだっけ? namespace std::collections { class AreKore { }; } みたいな奴
49 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 21:56:02 ] >>45 もしGC入ったら趣味プロレベルはそっちに流れそうな気もする
50 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 22:04:29 ] >>47 SGI -STLはかなり初期から入ってた。 というか、今じゃほにゃららext系の名前空間にむしろ入ってないケースの方が多いくらいだが、 こいつらも一時期は std 内に生息していた。
51 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 01:27:50 ] >>47 C++はパッケージがないしなあ。
52 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 06:44:24 ] >>48 それ、便利だよなぁ。あったら。
53 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 07:06:19 ] >48 提案はあったようだけど ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1524.htm Not ready for C++0x になってる。 ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2389.html
54 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 17:15:28 ] ドラフトに入ってる機能が削除される可能性ってあるのかな?
55 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 17:39:48 ] 修正不能な大きな穴が見つからない限りない、 つまりない。
56 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 18:29:10 ] d
57 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 19:58:56 ] ただ節目節目で投票に掛けるようだから、 最終投票まで油断は禁物。
58 名前:デフォルトの名無しさん [2007/10/12(金) 22:27:28 ] 取り敢えず今俺が望むのは 新しい予約語は増やさないで可能な限り記号で。 拡張forでbeginとendが必須とかいらん。[]辺り使ってくれ(現状は知らんケド) nullptrとかlong longとか絶対要らん。 折角bit長決定してねぇんだからlongで代用させとけ。 いかにMSが文句言おうと規格無視して32bit前提にしてるのが悪い。
59 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:57:31 ] >58 C++0x に入るかもしれない提案だと、本当の予約語としてこれくらい追加。 () で囲んでるのは attribute の提案(n2379)が通ったら予約語にはならないと思われるもの。 実際には、キーワードの再利用とかもひどいし、std::inializer_list とか予約語じゃないけど 基本的な機能で使用されるものとかも多いので望み通りにはいきそうにないね。 [working paper] (alignas), alignof, char16_t, char32_t, constexpr, decltype, static_assert [concept] axiom, concept ,concept_map, late_check, requires [GC] (gc_forbidden, gc_relaxed, gc_required, gc_safe, gc_strict) [雑多なやつ] nullptr, (thread_local)
60 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:04:35 ] []演算子にしたらbidirectional iterator/rangeとか困る。 long longは現状追認で仕方ないだろ。C99にも入っているし。 それよりint 32 bit, long 64 bit, long long 128 bitなんて妄想しようぜ。 でもnullptr不要には同意。
61 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:18:01 ] 可変単位整数ならテンプレート合わせで vint<8> のようなほうがいいな。
62 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:18:02 ] intXX_t系をしっかり実装してあればいい。(x=>数字)
63 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:28:59 ] なぁ、新しく追加されるconceptだけど、 gccにあったsignatureの方がよくね? まぁ、廃止されたんだから、廃止されたなりの デメリットがあったんだろうケド既存のクラスをいじらなくて済む分 signatureの方が便利そうだ
64 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 02:14:03 ] こ こ ま で の レ ス は 、 す べ て 『 気 の せ い 』 で す 。
65 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 02:51:43 ] そんなことじゃないかと思ってたよ
66 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 04:42:02 ] MSと何の関係があるのかと…
67 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 09:17:37 ] nullptrに特殊化させたい。
68 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 09:28:11 ] >>67 それは nullptr がテンプレートとして実装されていればいいのにってこと?
69 名前:デフォルトの名無しさん [2007/10/13(土) 12:09:20 ] 本来のポインタと変換しやすいスマートポインタを書いたり、 ポインタを保持できるコンテナやアルゴリズムを書いたりするとき ヌルポインタに対するテンプレート特殊化が書きやすい、 ってことだべ。 NULL=0定数を使うと整数の特殊化とかち合う。
70 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:11:25 ] >>64 WindowsがLLP64モデルを採用してるからじゃない?
71 名前:70 mailto:sage [2007/10/13(土) 12:38:51 ] アンカーミス >>64 → >>66
72 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:44:48 ] ttp://herbsutter.spaces.live.com/
73 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 16:29:41 ] さったーさんはCLIの世界へ逝かれました。
74 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 16:56:24 ] というか、Lippmanにしても、 なんであそこまでC++/CLIに入れ込むのかわからん。 MSとの契約に書いてあるのかな?
75 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 17:05:59 ] でもさ、C++/CLI って Java 厨がうざいこと言ってきたときには便利じゃね?
76 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 17:18:33 ] 実はいずれ標準にGCが入った時の事を考えてるに違いない
77 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 18:32:59 ] いや、マネージドという視点を入れると、おもしろいよ C++/CLI リソース混合状態を考えると、何かがいることは確か
78 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:29:45 ] #define nullpo nullptr
79 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:32:11 ] >>78 誰かやると思った #if defined nullpo #define ga nullpo
80 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:37:10 ] null はダメなのか・・・ やっぱり誰かが使ってそうだから?
81 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:46:52 ] >>79 それだと全てのgaがnullpoに置換されないか?
82 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:51:51 ] #endif
83 名前:デフォルトの名無しさん [2007/10/13(土) 23:22:06 ] g++だと__nullというのがつたえたりするね。いまでも。
84 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 23:25:20 ] やんぬるかな
85 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 23:28:42 ] 病ん(でる)null?
86 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 02:59:02 ] VC++ でも __null じゃなかったっけ?
87 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 03:55:27 ] nullptr が導入されても T* p = ...; if (!p) あぼん は生きてるよね?
88 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 03:56:30 ] マルチメソッドはどうなったんだろう。 あれが入ったらダブルディスパッチが不要になるな。
89 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 04:08:52 ] >>88 それなに? C#の event みたいなやつ? デリゲート使ってるやつ。
90 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 05:31:31 ] はわわわわ
91 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 08:59:17 ] >>86 /clr付ければnullptrが使える。
92 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 09:00:16 ] >>87 どうせ #define nullptr 0 ってなるだけだろ。
93 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 09:37:57 ] >92 それだと提案されてる内容を満たさない。 ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2214.pdf nullptr の型は nullptr_t であり整数値として扱うことができない。 >87 定数 nullptr そのものが出てこない限りプログラムの意味論には影響しないと思われる。
94 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:52:03 ] C C++ (c plus plus) C# (c charp) C* (c anal) C@ (c gurochikuvi)
95 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 22:06:33 ] C(i) (c omeko)
96 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:05:20 ] Cω (c sorewa watashi no oinarisan da)
97 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:09:25 ] いや、わかって書いているとは思うんだが、一応。 Cωって存在するぜ? ja.wikipedia.org/wiki/C%CF%89
98 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:16:47 ] まあ、>>97 さんて野暮なお方
99 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:21:29 ] 外人って ω とか見てもへっちゃらなのかね。変なものを想像したりしないのか?w
100 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 03:36:30 ] 2ch見すぎ
101 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:04:36 ] 日時関連のクラスの導入とか無いのかね。 あっても良さそうなもんだと思うんだけど。