- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:25:25 ]
- 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/
- 237 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:39:08 ]
- 自己紹介乙
- 238 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:43:12 ]
- そんなことより0bをだな
- 239 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 04:28:43 ]
- というか詰めの作業に入っているから、
そんな勢い良くリアクションするようなことはない。 ただ思った以上に書き直しが多かったので驚いた。> Concept Rev.7
- 240 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:25:37 ]
- 今さら変えられないんだろうけど、
ストリーム関連の命名規則がぐちゃぐちゃすぎる。 書式を変更すると保存されるのも使いにくい。 cout << hex(123); みたいにしてほしかった。 これじゃあprintfの方が便利とか言われても仕方ない。 あと、再帰のできないconstexprには失望した。 コンパイラの仕事は、実行時向けに最適化してループにするだけじゃね?
- 241 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:35:10 ]
- 実行時にループしたらconstexprとは呼べない。
- 242 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:41:59 ]
- 実行時はすでに定数じゃないが、
しかし現状で、テンプレートでコンパイル時再帰の定数ができる以上、 constexprも再帰できてほしかったなぁ。
- 243 名前:240 mailto:sage [2008/08/02(土) 14:47:06 ]
- >>241
N2235には変数を引数に取る例も載ってる。 実行時も使えるよっていうメリットを残しながら、 再帰できるようにするのは可能だと言いたかった。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:31:10 ]
- >>243
仮にそうだとしても、再帰するconstexpr関数がどうせ実行時評価しかしないなら、constexpr付ける意味が無いのでは。
- 245 名前:240 mailto:sage [2008/08/02(土) 17:06:39 ]
- >>244
いやいや、もちろんコンパイル時も使う。 定数のみを引数に取ったらコンパイル時に展開すればいい。 constexpr int pow(int x, unsigned int n) { return n > 0 ? x * pow(x, n - 1) : 1; } ... char buffer[pow(2, 8)]; // 定数 unsigned int n; std::cin >> n; std::cout << pow(2, n); // 変数 constexprを取ったら、配列のサイズが定数式じゃないから通らない。 テンプレートでメタ関数として書くと、今度は変数が使えない。
- 246 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:39:31 ]
- >>245
可能かどうかで言えばまあ可能なんだろうな。 N2235も「今はまだそのときじゃない」って感じだし。
- 247 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 20:36:23 ]
- constexprは「実行時にも使いまわせる型厳密なマクロ」だよな。
お世辞にもコンパイルタイム関数実行とは呼べない。
- 248 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 21:55:46 ]
- 再帰がやりたければtemplate使えばいいって考えがあったから
constexprは再帰禁止にしたのではないかと思う。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:39:28 ]
- C++の拡張の目的としてあげられている
ユーザー定義型に組み込み型と同等の待遇を与える っていうのを実現するのには今のconstexprで十分っていう判断だと推測
- 250 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:56:41 ]
- テンプレート引数は小数使えないしな・・・。
- 251 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:54:32 ]
- 俺は>>245の愚案には反対。
constexprの狙いから外れすぎ。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 04:05:47 ]
- 浮動小数点演算テンプレートを作ればいい
- 253 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 11:50:11 ]
- コンパイル時のものと実行時のものは明確に区別して欲しいな
両方使えるとか紛らわしい
- 254 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:06:56 ]
- >>253
D言語なんかは現状ではどの関数がコンパイル時実行できるかさっぱりだけれども、今後関数属性のpureで解決するようだねぇ。
- 255 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:08:49 ]
- マクロとテンプレートとinlineとconstexprの関係でパニックになる初心者続出の予感
- 256 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 13:59:53 ]
- commonlisp よろしく
#eval_when (<評価するタイミング1> <評価するタイミング2> ...) { <評価する式> } みたく、しちまえよw
- 257 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:48:23 ]
- すっきりしないねぇ。標準委員会に入って考え抜くと、これが最もエレガントな解と思えるようになるのかな。
おれがC++が好きだったのは、Modern C++にもあったけど、 各目的で用意された諸機能が、有機的に相互作用(ハーモナイズ)しあって、 1+1=2以上の機能体系を生み出してたところが、実用的でかつアーティスティックで好きだったんだ。 おれが入門したころの、templateがあってRTTIないくらいのころのC++は美しかった。
- 258 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:10:05 ]
- 昔はよかった
K&Rの頃のCが一番だと思っている
- 259 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:19:46 ]
- D言語マンセー
- 260 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:36:26 ]
- ここでC++0xの文法があーだこーだ議論するような奴がD言語使うと、
自分で言語仕様を拡張したい病にかかるからやめたほうがいい。
- 261 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:43:18 ]
- >>257
互換性やメリット、デメリットの狭間に立って考えると良い線じゃないの? 既に巨大なC++の仕様を拡張するのは常にデメリットが大きいし 互換性を考えると不要なものも捨てられないし
- 262 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:47:13 ]
- 互換性か…嫌な言葉だな
- 263 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:45:51 ]
- >>260
ありすぎて困るww
- 264 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:59:52 ]
- とすると、そろそろ寿命なんだね。
C++がぐんと存在感伸ばしたころ(おれがC++始めたころ)はC++の青年時代。 引きしまってたし、かといって機能が少ないわけでもないくて先駆的機能たくさんあった。 今は余計についた贅肉自体にもフォローしなくちゃいけなくて悪循環。 (後継の人たちが)どうがんばっても老廃物が老廃物を呼ぶ。 初代ガンダムは筋が通ってておもしろかったけど、 それみて育った子供達が作った後継のガンダムはちっともおもしろくないのと同じ。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:15:28 ]
- 寿命なのはそうなんだろうけど、後継がサッパリ出てこないから老兵が頑張るしかないんだよな
Java?論外ですわ
- 266 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:22:19 ]
- Dの出番ですね
- 267 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:32:25 ]
- 言語はともかく、処理系がいまいちな気がするのは偏見だろうか>D
- 268 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:33:04 ]
- >>266
個人が趣味で作ってる程度のものをC++やJavaと同列に扱うのはどうかと思う
- 269 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:33:23 ]
- 俺的にはC++0xでやっと「使える」様になってきてこれからな感じなんだが・・・
template無い頃のC++はこりゃダメだと思ってたよ
- 270 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:48:18 ]
- >>268
今でこそ標準化されてるけどC++だって昔は似たようなものだったよ。
- 271 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:01:36 ]
- 最近はもう、言語も大きな会社がバックについて
結構な規模の開発体制でやってないとまともなものできないんじゃないか。 Java も .NET も企業主体だし。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:39:18 ]
- >>270
cfrontの頃は使いにくかったな。GCC(G++)が革命的だった。
- 273 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 10:18:21 ]
- Javaも最近はcontrol abstractionとかやり始めて、
以前の保守的なJavaと違って面白くなってきた。 けどconcept, move semanticsなど、 言語機能の本質的なところで実験を続けてるのはC++だと思う。 JCPはEnterpriseな人の便利機能指向が面白味を削いでいる。 実用向けの言語としてはそうでなくては困るのだろうけど。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:31:50 ]
- >>273
いよいよ言語マニアだけのためのおもちゃ感が出てきたなぁという気がする。
- 275 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 00:47:16 ]
- conceptもmove semanticsもライブラリ製作者だけが知ってればいい機能だから、
言語マニアと普通のC++ユーザとはちゃんと住み分けできるよ。
- 276 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 00:52:02 ]
- ライブラリ制作者がすべからく言語マニアで普通のC++ユーザではない、と言うのは暴論だ。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 01:04:39 ]
- むしろ境界の曖昧性、というかシームレスであることが C++ だと思う
- 278 名前:277 mailto:sage [2008/08/05(火) 01:05:30 ]
- ちょっと端折った
× むしろ境界の曖昧性、というかシームレスであることが C++ だと思う ○ むしろ境界の曖昧性、というかシームレスであることが C++ の利点だと思う
- 279 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 01:41:07 ]
- コンセプトはC++プログラマは全員が知る必要のある機能です。
テンプレートと同じです。駆使するのは一部の人だけでいい。
- 280 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:52:01 ]
- >>276
まあべつにコンセプトしらずにテンプレートライブラリを作る人がいてもいいのでは... ってそれは良くない気もするな。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:07:31 ]
- それよりも「すべからく」の誤用が気になる。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:21:30 ]
- 当然の意味でも取れるから必ずしも誤用とはいえないな。
書いた当人がどういう意図で使ったかによる。
- 283 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:34:26 ]
- 「須らく」は「〜〜するべき」と受けるんじゃないのか?
どうしても>276で使うなら -- ライブラリ制作者は須らく普通のC++ユーザではない言語マニアであるべき、と言うのは暴論だ。 -- となると思う。
- 284 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:30:06 ]
- it's an absurd statement that librarians are always language-mania
and not usual C++ users. てきなニュアンスに読める。原文に「べき」とかがないので。。
- 285 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:50:20 ]
- 原文に「須らく」もないね。
- 286 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:00:32 ]
- このスレには、プログラミング言語のみならず、
自然言語ヲタも多いのか?
- 287 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:19:46 ]
- 教養があるだけの話
- 288 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:37:35 ]
- 自分で言うか。
- 289 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:53:40 ]
- 須らくの使い方は中高で習うだろ
- 290 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:13:39 ]
- しかし自然言語には標準の規格もないし方言が強すぎるし、
時間と共に文法や意味が変化していく。 よほどの猛者しか自然言語の批判はできないが。
- 291 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 12:42:20 ]
- だからエスペラント語をだな、
- 292 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 13:41:33 ]
- Esperantoも開発されてから現在まででかなり語彙が変わってるわけだが
- 293 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 13:47:06 ]
- >>291
形式言語理論が確立される前に設計されているので、他の自然言語と大差ない。
- 294 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:23:20 ]
- そこでイド語をだな、
- 295 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:31:32 ]
- 挙げるならロジバンだろ
イドはエスペラントと大差ない
- 296 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 09:18:36 ]
- コンパイル時の最適化用として
副作用なしで同一引数なら同一の値を返すみたいなヒントとか 同一内容の引数なら同一内容の値を返すみたいなヒントが欲しかった。
- 297 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:01:38 ]
- つ #pragma
つ memorize
- 298 名前:デフォルトの名無しさん [2008/08/09(土) 14:05:55 ]
- C++みたいな理屈っぽい言語はもういい。
グループによる開発に向いた言語じゃない。C++のややこしい 仕様をよく理解していない人間がグループの中に混じっていれ ば、そいつがバグを仕込むテロリストになってしまう。 もちろん、どんな言語でもバグは入り込むが、C++は特に仕様 が複雑で、誤解にもとづくバグが簡単に入り込み易い。 禿がC++0xをいつの時期、どういう仕様で発表するのか しらんが、こんな呪文みたいな言語、もういい。 C#に乗り移ろうかな。
- 299 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:13:28 ]
- 悪意の無いテロリストはどんな言語でも爆弾仕込むけどな。
- 300 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:19:22 ]
- C++が言われる程複雑じゃないと感じる俺は毒されてるんだろうか
- 301 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:22:00 ]
- C++を取り巻く環境が複雑なのだろう。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:24:49 ]
- 馬鹿を基準に物事を決めたら進歩は止まるよ
- 303 名前:デフォルトの名無しさん [2008/08/09(土) 14:29:18 ]
- ↑こういう鼻持ちならない馬鹿がうじゃうじゃいるのがC++の世界
- 304 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:31:36 ]
- >>298
バージョンアップするたびにライブラリレベルで後方互換性が問題となるような、 理屈がない言語も困ったもんだが…
- 305 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:54:06 ]
- >>303
君には縁のない世界だって事よ。
- 306 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:45:35 ]
- >>299
メチャワロタ うまいこと言うねw
- 307 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:48:33 ]
- >>300
理解という意味では、今のC++の各機能をすべて同じ温度で見つめたら、複雑と思えるんだろうな 昔からやってれば、ここはよく使う主流機能、これはうさんくさい互換性向け機能、とかわかるし 使いこなすという意味では、地雷が増えた気がする。オブジェクトコピーがらみとか。 ただJavaとかのゴミ拾いがらみ機能とか、文字コード変換とか、も地雷いっぱいあった気がする。 一本筋を通してきれいに言語設計・処理系実装してほしいね。それがElegance
- 308 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:04:17 ]
- >>307
ふむ、ならば Scheme でも使いたまへ。
- 309 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:24:06 ]
- いやいやここはunlambdaで
- 310 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:32:03 ]
- >>309
やっぱ、初心に帰ってアセンブラだろう?
- 311 名前:デフォルトの名無しさん [2008/08/09(土) 16:52:55 ]
- 美少女中学生の汗ブラ!(*´Д`)
- 312 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:57:20 ]
- >>311
美少女中学生シリーズの中では出色の出来だなw
- 313 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:29:29 ]
- >>296
D言語にはもうすぐ純粋関数くるよ
- 314 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:27:50 ]
- >>296
実際どのくらいパフォーマンスを向上できるのだろう 副作用なしで出来ることはたかがしれているし メリットが小さすぎるんじゃないの?
- 315 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:32:26 ]
- >副作用なしで出来ることはたかがしれているし
マジすか
- 316 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:34:44 ]
- ものによるだろ
すっごいでかい配列の長さをいちいち求めてたけど実は固定長でしたみたいなのだったら かなり速くなるかもしれない まあそんなケースは少ないだろうが
- 317 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:42:32 ]
- >>316
それは>>296とは関係ないけどね
- 318 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:37:17 ]
- そりゃconst size(void); だからね。
sparse arrayのアクセスなんかが相当すると思うけれど、 Cでnoaliasが排除されて以来、 そういう最適化用ツールは言語に組み込まない方向でしょう。 constは意味も規定しているから、重要だけど。
- 319 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:46:10 ]
- >Cでnoaliasが排除されて以来
え?C99のrestrictは?
- 320 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:50:10 ]
- restrict 忘れておった orz
- 321 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 10:47:23 ]
- restrictって本当にコンパイラにヒントやるだけで
実はエイリアスあったとしてもコンパイラも実行時も何も言ってくれないんだろ
- 322 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 10:58:13 ]
- 当たり前だろw
やりたきゃコードで書けよ。
- 323 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:43:41 ]
- 自動的にassertを追加できそうなものだが。
- 324 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:23:27 ]
- ttp://gcc.gnu.org/projects/cxx0x.html
知らない間にInitializer listsが来てる件について libstdc++がついてくるのに当分かかるだろうけど、4.4 alpha入れてみよう
- 325 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:51:55 ]
- >>323
assertかよw
- 326 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:44:32 ]
- char a[10], *p;
p=a; memcpy(p,a,10); こんな露骨なのにも警告すら出せないrestrictって何なの
- 327 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:53:42 ]
- 警告を出すような(素晴らしい)コンパイラを作るのは(コンパイラ屋の)自由じゃね?
- 328 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:17:27 ]
- restrictがC++に入ると、やっぱりスマポもrestrictに出来なきゃならんって事で
クラスのrestrictインスタンスやrestrictメンバ関数が作れるようになるんですね こんなもんをコンパイラはちゃんと最適化で有意義に使いこなせるのかね
- 329 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:35:34 ]
- >>326
仕様を勘違いしてます。
- 330 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 07:09:32 ]
- まじめに疑問なんだけど、整数に2の補数を使ってない処理系ってあるの?
atomic周りを読んだら、atomicに限りsignedな整数型とアドレス型は2の補数となりオーバーフローによる不定動作はないと書いてあるけど、 もし仮に、すべての整数型を、2の補数としてしまっても、現実として問題は起こらないと思うんだけど、 なぜC/C++の規格は2の補数だと規定してしまうのを避けているんだろう。
- 331 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 08:48:34 ]
- >>330 ハード含めて処理系って言うんならそれでもいいんだが...
かつて、実際に2の補数表現を使用しないCPUが存在していたし、 「今後とも2の補数表現以外の整数表現をもつCPUが開発される 事はない」って、保証はどこにもない からじゃないのか?
- 332 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:51:31 ]
- 特殊用途では符号ビット+絶対値の方が都合がいいことがある
- 333 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:10:58 ]
- 最近の言語は2の補数表現を仮定した整数型の仕様で、
そうじゃないCPUはエミュレートしろって立場だね。Java, ECMAscriptなど。 けどCの時代はまだそういう時代じゃなかった。 2の補数表現を仮定しない最後の言語のひとつかもしれない。
- 334 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 14:27:24 ]
- >>330
DSPなどでは存在してたと思う。とりあえず C++ はそういうアーキテクチャも対象にしてる ってことだろうね。 もし、2の補数に規定するなら語長(intは必ず32bitとか)も規定するのが良いだろう。 最近の言語ではそのほうが普通かな。
- 335 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 14:34:17 ]
- 美少女中学生のおっぱいは2つだから2の補数!
美少女中学生のおっぱいは2つだから2の補数!
- 336 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 14:40:37 ]
- >>335 がいいこと言った!!
- 337 名前:デフォルトの名無しさん [2008/08/14(木) 10:39:04 ]
- ちょっと聞きたいけど、右辺値参照(Rvalue reference)
が導入されると、(a+b)*(c+d)*eみたいな行列演算も効率化されるの。 それとも、やはり無理?
|

|