1 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:10:49 ] The C++ Standards Committee www.open-std.org/jtc1/sc22/wg21/ wikipedia 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/ C++0x 3 pc11.2ch.net/test/read.cgi/tech/1204808027/ C++0x 4 pc11.2ch.net/test/read.cgi/tech/1214407525/
101 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:25:55 ] 標準ライブラリの完全なconcept化
102 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:32:10 ] tr2てのはC++0xの次って事でいいの? ThreadとかNetworkとかDatetimeとかFilesystemとか 実用的なのが多いね
103 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:38:27 ] 正直、これ以上 C++ を高機能化しても仕方が無いと思う。 C++ は構文解析と意味解析が複雑に入り組んでいる事で悪名高いから、 これらが完全に分離された言語に一旦整理し直した、別言語を作るべき。 あくまで C++ と機能的には変わりのない範囲で。
104 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:59:30 ] それは他の人/団体/企業がやってるよ。
105 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:26:24 ] 意味はあるだろ C++を使ってる俺が嬉しい
106 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:27:43 ] コンパイラ作る側がひぃひぃ言って サポートが遅れてもあんまり意味が無いからなあ
107 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:45:47 ] >>103 何そのD言語
108 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:11:31 ] MS付きのC++/CLIでさえあの体たらくだというのに…
109 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:19:19 ] D言語もGCあるからなあ・・・ 常に scope を使えばいいのかもしれないが、なんだかな・・・
110 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:20:10 ] >>109 D言語でもGCを止めて、C++のように書くことはできる。
111 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:28:30 ] スコープにとらわれないタイミングで delete できるの?
112 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:38:00 ] >>111 普通にC++のようにdeleteすればいい。
113 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:54:39 ] delete できるのか。 いいね、それ。
114 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:49:28 ] C++はそろそろコンストラクタとデストラクタの前と後に呼び出される処理をデフォルトで追加するべきだな。 ファクトリー関数とかだるすぎる。 スマートポインタをコンストラクタ内で作れなくてもいいから、コンストラクトが終わった後になんか呼び出してくれ。
115 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:05:44 ] >>114 before-daemon, after-daemonキター!
116 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:09:14 ] コントラクトとかアスペクトとか、 そういうのは入らんのか。 テンプレートにちょっといろいろ たすだけでできそうだが。
117 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:59:18 ] その辺研究した上でconceptに昇華された。 AspectJ, Eiffel, ML, Haskell辺りの型システムを、 型の専門家が研究した成果を取り入れてる。
118 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 08:53:22 ] さあ!みんなDゲンガーになろう!
119 名前:116 mailto:sage [2009/02/02(月) 18:50:48 ] >>117 conceptはtraitのちょっとした拡張くらいに 思ってたけど、違うんだ? # 詳しくはまだ見てないんす。orz 何かの言語で、処理(関数)の前後とかに 別途定義する処理を定型的にねじ込む 機能を見たとき、すげぇ超うらやましい! と思ったんだけど、あれが使えるのかな。
120 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:05:08 ] C++って、もともとCのソースをつくるだけだったんだぜ。
121 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:53:18 ] 例外で破綻したけどな
122 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:26:09 ] >>103 C++の構文解析って、今はすべて手書きらしいね こういうことがC++の将来に悪い影響を与えそうな気がする 構文を書き換える時期に来ているのかもしれない
123 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:52:16 ] たしかに、C++は複雑だからという理由も大いにあるだろうけど、 ほかの綺麗な言語でも高速な解析を目指せば自ずと自前で解析するだろうし、 何より今更そんな気にすることか?と思う。
124 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 08:36:01 ] 確か、IronPythonとかも手書きって話だったと。
125 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:18:53 ] 使わない仕様とか、勝手にエゴで古いコードの書き方を意味もなく変えたり。 バカだなぁと思う。 特にifとカッコの間にスペース開ける奴。 騙されてるよなぁー、と思う。
126 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:20:41 ] なぜ?
127 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:22:14 ] >>126 カッコまでが言語仕様だから。 カッコなしで通るなら、スペースを開けるのが正しいと思う。
128 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:24:03 ] いやお前の文章の意味が分からん。 「騙されてる」の主語は誰だよ? 「ifとカッコの間にスペース開ける奴」が「騙されてるよなぁー」だと思ったぞ。
129 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:25:06 ] >>128 スペース開けてる奴は、騙されてるよ。
130 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:29:50 ] 恥ずかしい言語仕様を隠すためだけに、権威筋が言い始めたのを真に受けて従ってるわけだろ? 騙されてなけりゃ、単なるバカ。
131 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:33:02 ] 自分の口からだだ漏れ状態の上から目線に興奮冷めやらぬのはわかったけど、 もうちょっと具体的に説明しないとただの電波さんw
132 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:46:14 ] どう見てもただの基地外さんだろ。 文章の意味が全く通っていない。
133 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:46:41 ] いやぁ、どう説明しても只の電波だろ。片や「騙されてる」と言いながら、片や「正しいと思う」だし。
134 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:00:46 ] その辺はスルーして、 C++の構文解析は自然言語構文解析並みwと書いた人が以前いたが、 (g++のMLだったか?) 最近手でパーザを書くのが結構流行っているのは、 エラー処理をきちんとやりたいから。 g++のパーザはすごくわかりやすい。 gccのパーザはbisonの出力したCコードから派生しているけど、 これも以外にもすごくわかりやすい。 v8(Javascript)の手書きパーザもすごく綺麗。
135 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:11:05 ] >>134 理屈はわかるが、いざ自分がそのパーサを書く係になったらと思うとぞっとするな。
136 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:42:34 ] エラー処理、得にエラー表示は、UIに属することだからね。 GUIで、入力足りないと、ダイアログウィンドウ出して、 入力してないフィールドを赤く表示して入力を促し、 側に警告も表示するっての似て、手間ばかり多いね。 ちなみにg++のパーザは2万行w (gccは8千行) C++で書けばいいのに… conceptg++のパーザは+1400行ですね。 // というかgcc本家のconcept branch放置されてる…
137 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:50:22 ] 手で書かなくてもエラー処理をまともにする方法はある気はするんだけどなぁ parser combinatorとか使ってコード量を10分の1ぐらいにできないのかなぁ
138 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:19:38 ] >>125 あなたはreturnにカッコを付ける人ですね 分かります
139 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:27:17 ] 相談室もだが、今日は変なやつがいるな もしかして同じ人?
140 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:41:11 ] >>137 簡単なんでいいから一回パーサーを 書いてみろ。 気のきいたエラー処理がどれだけ めんどくさいものか体感するべき。
141 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:26:20 ] >>139 最近あちこちで電波垂れ流してる脳内住人が出没してる。 ここのスレにも、見てわかるとおり。多分同一人物だろうな。
142 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:31:07 ] パーサのエラー処理は地獄だよ
143 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:38:09 ] エラー1つ検出して終わりなら大分楽だが 今時そんなコンパイラじゃ誰も使ってくれないだろう。
144 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:39:41 ] むしろコンパイル速度さえ爆速であればエラーを一つ検出して終わりというコンパイラもアリだと思う。
145 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:48:25 ] this -> m_Hoge = 10; これでも通るんだし別にいいんじゃね。
146 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:57:46 ] >>144 連鎖的にエラーが出る事が多いから、 結局最初の1つくらいしか見ないとか多いしな。 そこ直したらもっかいコンパイルした方がエラーが見やすいし。
147 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:07:22 ] 権威にはからきし弱い、太鼓持ち。
148 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:10:26 ] じゃあ柔軟なエラー処理ができ、かつ簡潔で速度もそこそこ出るパーザの実装手法を考案して有名になってやる
149 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:49:40 ] 期待してるよ
150 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:53:03 ] このスレで宣言するからにはC++0xのパーザも。
151 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:39:36 ] しかし改めて思うがひっでー文法だな 特にdeclarationまわり
152 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:54:43 ] varとかtypeとかfunctionとかのキーワードがないのに合わせて、 typedefが止めを刺した感じ。 classやtemplateやcoceptはキーワード付けてくれて本当に良かったよ。
153 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:08:28 ] >>152 何かで見たけど、キーワードはできるだけ 追加しないってのがポリシーなんだよね。
154 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:14:40 ] >>138 わかってないな。 省略できるから、つけようがつけまいが自由なんだぞ。 単にあのかっこも、一時期のバグ回避だし。
155 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:45:46 ] どうでもいいことで盛り上がるなこのスレ
156 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:54:32 ] 馬鹿が必死になるから挑発しないでくれ
157 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:00:29 ] というか、どうでもいいことだから盛り上がる
158 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:12:45 ] ごめんなさい…
159 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:28:10 ] >>154 へー、そんな理由がねぇ。 おいらてっきり、void return(x);的な関数に見せかけたいが為に やってんだと思ってた。あんま関係ないけど int(main)(int(argc),char**(argv))なんて所にも括弧付けれるね。 まぁ、当方returnですらカッコ付けたことは無いから付ける輩の気持ちは解らんけど。
160 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:33:08 ] return って、20年以上前の大昔には実際に関数だったとかじゃなかったっけ? ANSI 以前の。 大昔の良書(今となっては歴史的資料)がANSI以前の文法で書かれてたりするせいで、 それが正しい書式だと思ってる人が絶えなかった。
161 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:35:06 ] 未だにflex/bisonみたいな古いツールの解説では旧形式の関数定義があったりするな。
162 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:26:28 ] >>160 >return って、20年以上前の大昔には実際に関数だったとかじゃなかったっけ? それはない。exit()の実装と勘違いしていないか?
163 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:51:35 ] >>160 このレスは全て間違い。以下無視するように。
164 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:56:56 ] C FAQを当たってみたけど、 ttp://www.kouno.jp/home/c_faq/c20.html#0 > 20.19: > returnの後ろに来る式をくくるカッコは本当に省略可能か。 > A: > 省略可能だ。 > 大昔、Cの初期には、必要であった。そのころにCを学んだ人がたくさんいるし、 > そのころ書かれたコードが今でも世の中に出まわっている。 それでカッコが > 今でも必要であるという考えが広まっている。 ということで、昔は必要だった(が関数ではない)ってのが正しいようだ。
165 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:52:05 ] ifとかwhileが関数ではないけど括弧が要るってのと同じことだったんだと思う。
166 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 06:58:32 ] 統一性を考えたらカッコが必要なままでもよかった気がする。 つか、不要にするならするで if や while もカッコ不要にして統一しろよ。
167 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:24:14 ] >>166 ifやwhileは括弧があっても、タイプミスをするとコンパイル時に検出できるが、 returnに括弧があるとそうはいかない。
168 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 08:53:03 ] >>166 retrun() でハマるというネタが
169 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 10:42:17 ] >>166 つーか 統一するという言葉自体に惹かれても意味ないし 第一、統一する理由がない
170 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:42:57 ] 括弧無しでも文法としては作れるよね? そうしろっていってるんじゃなくて、ふとした疑問で
171 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:30:29 ] return-statement := return EXP と定義すれば既に統一されてるじゃん 空白や(は識別子に含めないからそこで打ち切られてreturnが認識され、 以降の式が続けて認識される
172 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 16:13:55 ] >>166 break continue sizeof系統だからある意味統一されてるだろ。
173 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 16:26:05 ] >>172 sizeofちと違う
174 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:58:38 ] >>170 ついでにifなどにぶら下がる文を複文限定にして、中括弧必須にしてくれればいいのにと思う。
175 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:14:32 ] P e r l 化 決 定
176 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:22:59 ] #define begin { #define end }
177 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:02:27 ] >>176 嘘のような、本当の話。
178 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:21:51 ] 昔々のはなしじゃねーか。 つーか、ゴテゴテ強化してJAVAより遅くなってたら笑える。
179 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:23:53 ] >>176 STL コンテナと一緒に使えますか?
180 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:42:50 ] #defineはコンパイル以前に発現するのでSTLと一緒には使えません。
181 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 09:15:30 ] えー
182 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:57:45 ] #define private public
183 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 19:11:50 ] #define privata public
184 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:59:45 ] #define mein main #define retrun return #define cahr char
185 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:06:58 ] #define itn int #define sohrt short #define unsgied unsigned #define long lgon #define vodi void #define defien define #define incldue include #define thrwo throw
186 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:18:27 ] #define unsinged unsigned がないのはおかしい
187 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:49:20 ] ^t
188 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:04:18 ] 結局、単なるデブ言語か。 テンプレートでarray使うと、C#より遅くなるんだからたまらん。
189 名前:デフォルトの名無しさん [2009/02/11(水) 00:08:35 ] >>188 え〜。コンパイル時に最適化掛けてないとかそんな話じゃないよね?
190 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:36:58 ] 「テンプレートで」とか、馬鹿に決まってるから相手にするな。
191 名前:デフォルトの名無しさん [2009/02/11(水) 01:09:58 ] すいませんでした。いや、数年前に、 知り合いで大学院で C++ でシミュレーションをしていた奴が、 遅くて困るんだよね... といってたから最適化オプションはどうしてる?と聞いたら 何もしらなくて、調べてみるとなんとデバッグオプションつきで inline 展開も無しだったという恐ろしい話があったのでね...
192 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:20:19 ] 188はコンパイルが遅いって話かと思った
193 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:36:50 ] 遅いなら速くすればいいじゃない
194 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:34:24 ] コンパイルが遅いならDをt(ry
195 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:05:34 ] ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
196 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:07:49 ] いやいや、三次元配列だとすで使っても遅いぞ。
197 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:09:29 ] mailing2009来てるじゃん スレッドのバグが山のように報告されてて吹いた
198 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:58:23 ] constexpr の再帰が復帰してるっぽ。
199 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:15:07 ] 停止判定できないのはテンプレートも同じだからな
200 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:36:24 ] 結局コンパイラ側で制限かけるんじゃね?
201 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:28:13 ] そういう問題じゃない。