1 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 23:27:34.48 ] The C++ Standards Committee www.open-std.org/jtc1/sc22/wg21/ Wikipedia ja.wikipedia.org/wiki/C%2B%2B11 前スレ: C++11/C++0x 14 hibari.2ch.net/test/read.cgi/tech/1316760961/
375 名前:デフォルトの名無しさん [2012/01/27(金) 18:35:57.55 ] randomデバイスの挙動が意味不明なので、おしえてください。 intに入る非負だと思っていたのですが。 $ more rnd.cpp #include <iostream> #include <random> using namespace std; void echo(int val) { cout << "why? " << val << endl; } int main() { static random_device rnd; for (int i=0; i<10; ++i) { echo(rnd()); cout << rnd() << endl; } } $ g++-mp-4.6 -std=c++0x rnd.cpp $ ./a.out why? -1796924150 3042913710 why? -314325772 2069611482 why? 1357648257 1265153896 ...
376 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:40:35.61 ] 非負数ならunsignedで受けないと。
377 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:44:02.95 ] >>375 random_device関係ないし。 unsigned intからintへの変換でintの表現可能な範囲を超えているので鼻から悪魔を召喚してしまっている。 random_device::result_typeはunsigned intであり、intではない。 その値の範囲はrandom_device::min()とrandom_device::max()の間。
378 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 19:04:04.50 ] unsignedって一桁おおいのですね。あぁ恥ずかし。 ありがとうございました。
379 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 19:38:24.38 ] 調べていたらこれに当たったのですが、 ttp://cpplover.blogspot.com/2009/11/c0xrandom.html 最後のuniform_real_distribution(あるいはuniform_int_distribution) に到達する道のりが長すぎます。その後、何かショートカットできてたりしませんか?
380 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:34:45.41 ] しません
381 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 06:37:08.94 ] 「とりあえずテレビをつける」のをやめようか www.nicovideo.jp/watch/sm16774477 1/28 27日の朝生の感想 & 岐阜にキムチの町があるらしい! www.nicovideo.jp/watch/sm16814879 日本の年寄は情弱。一日中反日TVを見てる。 www.nicovideo.jp/watch/sm16812923 マスゴミの麻生さん叩きを検証しよう www.nicovideo.jp/watch/sm16811530 外圧で日本経済の破壊工作をする馬鹿 www.nicovideo.jp/watch/sm16811102 【拡散】 民主党の新たな言論弾圧法案、[秘密保全法案] www.nicovideo.jp/watch/sm16809977 法務省の「新たな人権救済機関」Q&Aが国民を騙している件 www.nicovideo.jp/watch/sm16809271 【西部邁ゼミナール】安倍(元総理)の日本国民に訴える 1 www.nicovideo.jp/watch/sm16692013 2 www.nicovideo.jp/watch/sm16750147 3 www.nicovideo.jp/watch/sm16810518 【討論!】野田民主党内閣の本質と行方[桜H24/1/28] 1/3 www.nicovideo.jp/watch/so16804695 2/3 www.nicovideo.jp/watch/so16804716 3/3 www.nicovideo.jp/watch/so16804726
382 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:01:14.79 ] >>381 グロ?
383 名前:デフォルトの名無しさん [2012/01/31(火) 00:39:17.13 ] マルチディスパッチはいつになったらはいんのよ。 Perlですら対応したんだから、変態言語も威厳を見せろよ。
384 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:43:15.54 ] ADLで我慢しなさい。
385 名前:デフォルトの名無しさん [2012/01/31(火) 00:55:47.49 ] パッと見似てるけど、全然違うじゃんかよ? オレ、アレがいい?。アレがいぃ?。 アレじゃなきゃヤダヤダ?(´・д・`) Perlくんも持ってんだよぉ? 買って買って?
386 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 04:08:20.44 ] あなたにはboostがあるでしょ! うちは低水準なんだから我慢しなさい
387 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 06:40:04.22 ] dynamic_castで分岐すりゃいいじゃんいいじゃん
388 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 12:26:03.48 ] 次の大規模な改訂で入るかもしれんぞ。 なにしろ、禿がいまだに諦めてないから。
389 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:05:51.56 ] クラス構造はそのままに制約無く実現するには関数の様に振舞う関数じゃないナニカを導入しないといかんから またラビリンス度が上がるな
390 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:02:26.11 ] いや、禿の目指してるのはvirtual functionのmultiple dispatchだよ。 効率よいVFTの作り方を模索中(だった、かな?)。 >>n2216
391 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:43:22.81 ] bridgeパターンのdynamic_castは解決できるのん?
392 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 00:11:12.60 ] >>387 どうやってやんの? 関数追加するたびに、分岐書き換えたりしないんだよね。
393 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 13:42:28.92 ] >>340 Digit Separators coming back www.open-std.org/JTC1/sc22/wg21/docs/papers/2012/n3342.html 入るといいね
394 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 18:13:05.91 ] インデントみたいに何桁区切りにするかで不毛な議論が行われるんだろうなあ
395 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 20:44:01.59 ] こういうの各自で解決するためのユーザー定義リテラルさんだったんじゃないのか 一体何だったのか…
396 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 22:04:27.32 ] 何桁区切りにするかはconstexprで計算する
397 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 08:20:11.66 ] 朗報 https://twitter.com/#!/visualc/status/165191796383686656
398 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:02:57.80 ] マジか! range-based for 使ってみるとすごい便利だから嬉しい。 std::vector<std::shared_ptr<A> > vec; for(auto it = std::begin(vec); it != std::end(vec); ++it){ it->func(); // 間違い (*it)->func(); } for(auto& x: vec){ x->func(); // こう書ける }
399 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:34:38.57 ] range-based forどころかあらかた実装しろよ
400 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 11:08:39.27 ] C++11 だと > std::vector<std::shared_ptr<A>> でもおkなんじゃ
401 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:24:15.34 ] 挙動に違いがなければコーディングスタイルに突っ込まなくてもいいじゃない
402 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:50:04.08 ] MS's Visual C++ team invites you to complete this C++11 Conformance Survey おまいらもやってこい
403 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:56:12.82 ] Visual C++ 11 Beta って言ってるけど既に2012年なんだよな
404 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:09:15.51 ] 2011年に出す……出すが、今回その底の指定まではしていない どうかそのことを諸君らも思い出していただきたい つまり…我々がその気になればVisual Studio 0x2011にすることも可能だろう……ということ……!
405 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:16:01.12 ] 一万年と二千年前から愛してる
406 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:27:21.45 ] 八千年過ぎた頃から毛根がなくなった
407 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:31:16.22 ] C++11の準拠度を上げたVSという意味で申し上げた
408 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:33:19.61 ] g++ 4.7 並の準拠率でも微妙に不十分だってのに それに遥かに及ばないんじゃ
409 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:40:00.27 ] >>402 どこだか探しちゃったじゃないか blogs.msdn.com/b/vcblog/archive/2012/02/02/10263304.aspx
410 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 19:34:28.14 ] どれを優先的に実装して欲しいかの投票?
411 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:01:17.17 ] >>403 VC++2011じゃなくてVC++11だから 6 = 6 2002 = 7 2003 = 7.1 2005 = 8 2008 = 9 2010 = 10 って続いてきた通し番号だから
412 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:08:14.81 ] おお、そう言えばそうだな 近い数字だから惑わされてた
413 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 22:13:44.13 ] C++0xを踏まえたネタかと
414 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:18:34.36 ] C++11の仕様を一気に取り入れるのは難しいことなの? 働けやMS
415 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:25:36.86 ] なんでこんなに時間かかってるんだろうな。 あまり人員割いてないのか難しいのか。 インテルもgccもC++11全体で見るとどんぐりの背比べだよな・・・
416 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:27:43.79 ] いやー、この規模はそう簡単に実現できるものじゃないと思うけどな。
417 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:45:17.73 ] 下手したら言語処理系史上最悪の複雑さかもしれん Common LispやAdaがオモチャに見える……というと言い過ぎだがw
418 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:56:04.66 ] 複雑だからプログラマーに仕事が生まれるっていう例のネタがさらに強度を増したな
419 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:55:20.50 ] コンパイラの実装が複雑な分、言語のユーザーはその機能で楽ができるって ことなのか?
420 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:57:26.00 ] >>417 下手せんでも最悪。なんでこんな難解な言語にしたんだか。
421 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:57:50.56 ] >>417 www.kmonos.net/wlog/83.html#_1721080322 CLはまだ遠いが、Adaは確実に追い越してるだろうな。
422 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:58:14.83 ] >>419 楽できる機能は初期段階で挙動を把握しないといけないので、 それのコストがバカにならないとみんな嘆くのだ。
423 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:32:23.21 ] >>421 その比較だとC#やJavaの方が上じゃん
424 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:39:44.15 ] >>423 Javaはバイトコードの仕様まで入ってるからしゃーない。
425 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:26:19.99 ] 意外とC言語からものすごい膨れあがってるってわけでもないんだな。
426 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:00:51.83 ] 膨れ上がって入るけどg++が既に9割は実装してんだから VC++もがんばれ
427 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:24:54.21 ] VCはC++/CX実装で忙しい
428 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:23:39.96 ] IDEもな
429 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:31:35.61 ] C++03 Managed C++ C++/CLI C++/CX C++11
430 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:43:27.22 ] C++11/CLI/CX
431 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:35:50.60 ] >429 C++AMPも入るらしいよ
432 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:14:54.43 ] Embedded C++ 「・・・呼んだ?」 Objective-C++ 「きちゃった・・・」
433 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 07:14:49.82 ] Embeddedはカエレ!
434 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 15:23:25.53 ] >>422 より少ないタイプ量からc++コードの自動生成が本来の目的だった d.hatena.ne.jp/niitsuma/20120203
435 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:29:33.44 ] >>431 AMPって何?メタプロをサポートした拡張とか?
436 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:50:43.88 ] >>434 面白いなー。スキーム書けないけど。 このトランスコーダってどれくらい最適化してくれるんかねぇ。ベタ移植してくれるんかな??
437 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 18:56:20.71 ] >>435 pc.watch.impress.co.jp/docs/news/event/20110617_453939.html
438 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/02/06(月) 19:47:56.65 ] >>434 Ver 0.6 の Not support の項にある define inside define ってのは Scheme 用語で言う internal define のこと? これは Ver 0.7 では関数内でクラス宣言することでなんとかしたってことでいいのかな。 lambda が使えれば展開後の C++ コードがもうちょっと readable な感じに出来そうだね。
439 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:16:39.35 ] >>433 Embeddedを甘く見るやつはEmbeddedに泣く
440 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:44:48.56 ] 甘くも何も失敗作には近づかないのが吉
441 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 21:47:11.72 ] ???
442 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:39:11.63 ] >>436 ベタじゃないと読めない
443 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:41:19.54 ] このスレでEmbedded C++がひどい失敗作だったことを知らない奴はいない
444 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 01:09:50.40 ] 標準化委員会に(といっても実質は禿)、名指しで無意味な糞って言われるくらいだからな。
445 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 01:27:11.60 ] 色々と肝心なものを削った結果、CともC++とも互換性失ったクソ言語だからな
446 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 07:22:00.88 ] だって仕様が減るEmbeddedを加えようが無いじゃん!
447 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 08:19:20.52 ] embeddedの言い訳がましさはすげぇよな。 どう見ても組み込み関係なく、 コンパイラ作れないんで、 これで許してちょだもんな
448 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 09:13:34.09 ] ぶっちゃけ、これが入ってればまだマシだったて言うのはどういう仕様? 調べたらこの仕様決めてる奴らトップが日本人なのか。ソフト弱いってレベルじゃねーな
449 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 10:00:31.57 ] 例外はともかく、多重継承なしは意味が分からん。 ライブラリ全部自前で設計する必要あるじゃん。 C++のフル仕様のコンパイラ作るのが大変ってレベルで、 独自ライブラリを設計構築できる訳がない。 コンパイラの作成は努力の積み重ねで何とかなるが、 ライブラリの設計はセンスが要求される。
450 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 11:36:26.54 ] やめて!Embeddedのライフはもう0よ(ry
451 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 12:53:55.07 ] 名前空間位言い訳せずにさっさと入れとけやと思った。 細かいとこはともかく、基本的なスコープはすぐ実装できたはずだ。
452 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 13:48:07.02 ] 仕様のシンプルさと吐出すバイナリのシンプルさに相関成り立たないしね フルC++にコンパクト化修飾子追加する形にすればよかったのに
453 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 19:49:07.09 ] テンプレートはまだしも、名前空間とか新形式キャストとか 実行時コスト0の機能まで考えなしに削ってるのが受ける 策定者は本当に馬鹿だったんだな
454 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 23:58:26.31 ] 日本発の言語なんだからRuby見たく盛り上げようよ!
455 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 00:32:26.51 ] あんなもの、世に発表するのは、社会への害悪。消え失せい
456 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 00:53:25.50 ] >>454 ISLISPの方がまし
457 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 01:01:27.64 ] 屍を動かそうとするのは愚か
458 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 01:51:49.37 ] >>453 名前空間は別として、新形式キャストは一貫性を保つためなんじゃね?dynamic castに配慮というか
459 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:14:26.02 ] 何か生まれてきたことを土下座して誤らないといけないレベルの叩かれようだなw
460 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:42:18.94 ] とりあえず門田浩と田丸喜一郎は絶対に許さない
461 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:43:11.57 ] 実際そのとおりだ。こいつのせいでクズコンパイラがバカ高い値段で売られることになり、 手を染めたコンパイラのその後の進歩(ISO仕様での実装しなおしなど)も遅れることになった。
462 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 07:26:43.51 ] 叩き所がわかりやすい言語は 叩きやすくて良いよね
463 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 08:40:06.30 ] 引き算するだけの言語設計も簡単だしね。
464 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 16:52:51.73 ] 日本産のまともな言語ってRubyくらい? なんか悲しいね。
465 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 16:57:19.67 ] プログラミング言語が諸子百家みたいに乱立する戦国時代よりマシだろ。
466 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:28:32.70 ] >>465 むしろその方がいいかと
467 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:51:58.72 ] 多少書き方が似てるだけで、既に乱立状態だろ。 案外、百種類位余裕で揃えられそうだ。
468 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 20:57:26.58 ] C#のプログラムをJava ILにコンパイルするコンパイラとかないの?
469 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 22:47:26.09 ] >>468 Antlrの文法一覧にあったかもしれない
470 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 22:49:06.90 ] >>464 AnthyといいTuro Linuxといい 日本産のものを過剰に叩き過ぎだよなあ iphoneがアニメキャラ名を一発変換→すげえ anthyeがアニメキャラ名を一発変換→きもい
471 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 23:12:14.35 ] そのコピペ流行ってんの?
472 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:17:40.93 ] da yo ne
473 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:40:15.47 ] Anthyと並べるならTOMOYO Linuxだろjk
474 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 02:57:53.68 ] SELinuxでいいよね あれ何のために存在してるの
475 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 03:03:14.44 ] (資金や労働を調達して)自分好みの環境を作れるヤツの贅沢な(企画厨的な)遊び
476 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:36:46.40 ] C++11のSTL拡張についてまだよく知らないんだけど、もうBoostが必要ないって くらいにはなったの?
477 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:40:18.83 ] std::progress_display
478 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:24:31.04 ] >>477 ぷろぐれすでぃすぷれいたんはもう…ぶーすとにもいないんだ……・
479 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 11:37:31.73 ] 彼女はね転校しちゃったんだ
480 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 12:22:31.45 ] std::egg std::oven
481 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:12:38.34 ] std::even std::odd はまだですか
482 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:55:49.22 ] std::nullpo はまだですか
483 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:50:22.28 ] \\ \\\ \ ∧_∧ ( ´・ω・) G と) ガッ >>482 ヽ⌒)、 \人∧__∧  ̄ (_) >`д´)') ∨つ /
484 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:00:33.29 ] namespace fucking_std { const struct { template<typename T> operator T() const { return nullptr; } } nullpo; }
485 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:03:51.86 ] #define fucking_std std
486 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:24:32.60 ] find . -print | xargs grep -l nullpo >rm
487 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:32:40.91 ] ガッ
488 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:16:30.65 ] T&& 型の変数と、T&& 型へのキャストを使わずに T 型の変数または、T& 型の変数を使って decltype で T&& を生成する方法はありますか? T a; typedef decltype((a)) TT; とやると T& になるように。
489 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:28:51.30 ] >>488 意味が分からない
490 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:39:03.13 ] >>488 C++言語の前に日本語の勉強をしたほうがいいんじゃないか? エスパーで答えるとこうだな。 using type = std::add_rvalue_reference<decltype(a)>::type ;
491 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:55:11.32 ] 最終的な目標はT&が欲しいのかT&&が欲しいのか
492 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:10:05.08 ] T&&が作りたいのですが、T&&という記述ができない前提なのです。 なので、add_rvalue_referenceは内部でT&&になっているので、使えません。 decltype内部でT&&を生成する必用があります。 decltypeで出てきたTに&&を付けるのも不可です。
493 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:19:28.94 ] decltype(std::declval<std::remove_reference<decltype(a)>::type>())
494 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:19:39.35 ] そうですか。
495 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 17:41:33.91 ] 何がしたいのかサッパリわからん
496 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 08:29:44.88 ] すいません、具体的に申し上げますと T = char[]なのです。 VC2010にバグがあるらしく、 T& と T&& という記述ができないのです。 ですが、 extern char a[]; decltype((a)) とすると char(&)[] という型ができたので、 同じような方法で char(&&)[] を作る方法を 模索しているのです。 declval も add_rvalue_reference を内部で使っているので 使えませんでした。
497 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 09:47:46.35 ] char (&&)[n] はそう書けば普通に作れると思うが…。 どの変数も受け取れないというバグがあるだけで。
498 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:13:01.18 ] 配列は右辺値にならない。
499 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:21:37.89 ] ああ、VC10か。 そりゃどうしようもないわ。 窓から投げ捨てろ。
500 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 13:38:48.81 ] あれ、配列って右辺値にならないんですか? それなら作る必用ないかな… ちなみに作りたかったのはchar(&&)[n]ではなく char(&&)[]またはchar(&&)[0]です。
501 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 14:00:32.04 ] 配列のprvalueはあるし(クラスのサブオブジェクトという形でしか存在しないと思うが)、配列のrvalue referenceもある。 MSVCがタコなだけだ。
502 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:05:30.95 ] なるほど、メンバなら右辺値参照もあり得るのですね。 struct A{ char b[]; } a; A &&b = (A&&)a; typedef decltype(b) C; typedef decltype(b.b) D; とやると、CはA&&になりましたが、 Dはchar(&&)[]にはならずchar[]でした。 なんとかここからchar(&&)[]を取り出す方法がないでしょうか? この挙動もVC2010がおかしいだけ?
503 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:46:22.42 ] おかしいだけ
504 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 10:20:36.09 ] もう一つ言うなら、C++ には C と異なり長さ 0 の配列が存在しないので 「長さ不明の配列への参照」ではなく「長さ0の配列への参照」を作ろうとしているなら それはそもそも規格違反。
505 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:06:31.65 ] vcでは>>502 の a.a と>>496 の a は同じ型と見なされているようです。 vcの規格違反である>>502 の a.a のような長さ0の配列の入力に対応するのは不毛なのですが >>496 の a のような長さ不明の配列への対応は必用と考えてやっています。
506 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 18:32:27.19 ] もう諦めてvector<char>&&を使ったらいかがでしょうか
507 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:12:28.96 ] タコなのはCの配列だったんだお
508 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:52:36.85 ] CUDAがEmbedded以上にウンコな件 削りすぎだろ
509 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 01:44:59.19 ] C++から削ったわけじゃなくてCからの拡張だからセーフ
510 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 06:08:43.92 ] forums.appleinsider.com/showthread.php?t=139011 CUDAがllvmになってC++11も動く? 本当?
511 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 06:43:09.23 ] clang –x=CUDA なんてできるのか。驚き stackoverflow.com/questions/9117109/how-to-compile-cuda-to-llvm-ir
512 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 08:45:46.85 ] 最近のLLVMにはPTXバックエンドがあって、このPTXを CUDAドライバに渡すとデバイスで動くバイナリに変換される C++11が動くのかどうかは知らんが、ランタイムや構文 (構文を直接組み込まずとも、対応する機能があれば良い)を解決すれば動くかもしれん ただ、何も修正しなくてもPTXにコンパイルすればGPUで並列化、ってことは流石にないだろう
513 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:25:51.13 ] CUDAに限らずGPU computingは、 CPUがメインで動くのが前提の計算モデルです。(ほんのごく一部の変態は除く) 並列化出来るところだけGPUに計算させる。 CUDAでは並列化を阻害するようなコードは書きにくいようにC/C++を制限している。
514 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 20:30:58.19 ] clang++ -emit-llvm でllvmコードはかせて CUDAに流し込んだらだめなの?
515 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 21:31:04.86 ] 開発環境に流しこんでどうするんですか?
516 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:25:47.18 ] 何の前触れもなくいきなりCUDAの話をし始めたこの人は一体何者なのだろう
517 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:26:10.49 ] BOINC狂だろきっと
518 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 06:20:23.39 ] CUDAスレに移動します。CUDAでC++11使えるなら使いたかった
519 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 00:35:54.72 ] >>516 Embbeded C++へのネガキャンがnvidiaを売るためのステマだったから
520 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 00:48:14.11 ] それは斜めすぎるだろ ステマ言いたいだけちゃうんかと
521 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 01:12:29.67 ] というか、ステルスマーケティングと言え
522 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 01:15:17.67 ] いちいち横文字にせんでもサクラでいいだろ
523 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 09:23:29.51 ] だいたい並行プログラミングを自動でやろうという性根が卑しいんだお
524 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:25:57.34 ] それでも、C++11のconcurrencyなら、何とかしてくれる!
525 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:41:04.79 ] C言語初心者ですが質問させてください。 conceptさんはいつ載るんですか?
526 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 19:52:16.23 ] コンセプトさんはお星様になったのさ
527 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 22:47:23.57 ] 外からアルティミシアが入って来れないようにしてんだよ言わせんな
528 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:11:20.16 ] 右辺値参照うけとるコンストラクタと代入って自動生成されますか?
529 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:18:12.82 ] されない
530 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:41:53.40 ] アザっす
531 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 18:35:20.01 ] コピーコンストラクターとコピー代入演算子も、 ユーザー定義のムーブコンストラクターとムーブ代入演算子、 コピーコンストラクターの場合はユーザー定義のコピー代入演算子、 コピー代入演算子の場合はユーザー定義のコピーコンストラクターが存在する場合、 暗黙に宣言はされるけど、その挙動はobsoleteだからな。 気を付けろよ。 将来廃止されるかもしれないぞ。
532 名前:デフォルトの名無しさん [2012/02/26(日) 23:07:17.37 ] >>531 日本語版で書いてくれ
533 名前:デフォルトの名無しさん [2012/02/27(月) 01:02:00.15 ] C++ で書いてくれ
534 名前:デフォルトの名無しさん [2012/02/28(火) 01:13:44.37 ] むしろperlで書いてくれ
535 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 00:46:07.52 ] VC++11がVC++10(2010)とは一体何だったのかってぐらい規格合致度上げてきている件
536 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 00:53:43.37 ] beta 出たみたいだけどどうなの?
537 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 02:31:36.31 ] 可変引数テンプレートいそげよ!
538 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:40:02.46 ] この惨憺たる状態から向上してんの? ttp://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx
539 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:41:33.56 ] GCCやClangも機能一覧のNoが減ってきたね 並行性はどちらもまだNoが多いけど
540 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:56:56.44 ] iccはlambdaは早かったけどその後が全然だな gcc/icc/vcで通るコードを書かないといけないからiccに足を引っ張られてる
541 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 10:32:15.05 ] コンパイラの開発が落ち着くまで03でいいじゃん
542 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 11:50:07.85 ] >>537 blogs.msdn.com/b/vcblog/archive/2012/02/29/10272778.aspx
543 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:21:44.79 ] 遂にM$が本気を出してきたのか…
544 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:28:42.10 ] 今までもいろいろな分野で戦いがあったが 最後に立っているのはいつだってM$だった これからもそうなるだろう そうWindowsPhoneもね
545 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:02:28.42 ] >>542 Variadic Templatesないじゃん。 単なるプリプロセッサーメタプログラミングじゃん。
546 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:39:02.94 ] MINGWがどこまで実装できたかの表はありませんか?
547 名前:デフォルトの名無しさん [2012/03/01(木) 13:44:30.96 ] 表はなくても裏がある
548 名前:デフォルトの名無しさん [2012/03/01(木) 13:47:03.99 ] >>546 禿Webに書いてあるGCCの状況と MinGWの現バージョンから導ける
549 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:52:54.25 ] ハゲwebってなんですか?
550 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:59:37.90 ] アデランスだよ
551 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:05:33.17 ] アートネイチャーでは手に負えなかったか
552 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:07:38.52 ] 面白いと思って言ってるの?
553 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:08:18.55 ] 笑わそうと思って書いてると思ってんの?
554 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:18:15.32 ] なんで質問を質問で返すの?
555 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:20:54.40 ] 質問で返しちゃいけないなんてルールあるんですか?
556 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:27:41.61 ] それに答えるには余白が足りない
557 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:33:03.07 ] ここはお前の日記帳じゃねえんだコミットログにでも書いとけ、な
558 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:35:33.88 ] そっくりそのまま返したるわぼけ
559 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:27:25.54 ] }
560 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:42:17.38 ] 忘れないように橋に書き留めといた。
561 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 20:02:38.86 ] ;
562 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:07:23.09 ] 最近じゃARMCCが大事なんだぜ あのコンパイラはロクなもんじゃないが
563 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 05:47:37.33 ] ガベージコレクタをC++に実装するか公式で議論が行われてるのはマジか? mallocかnewが自作できれば、いらないような気もするのだが。
564 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 06:08:18.67 ] 機構的には単なるスマポのシンタックスシュガーじゃね? コンパイラによる最適化の余地が増える分だけ得って気はしなくもない
565 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 07:31:35.40 ] FAQを見る限りでは、C++11にはポインタが指す領域がGC用語で言う「到達可能(reachable、簡単に言えばオブジェクトが「生きている」という意味)」である事を明示的に宣言したり ある領域にポインタがない事を宣言したりする機能が入ってるな 到達可能性の宣言はFAQに必要性が書かれてるから読めばわかる 二つ目はガベージコレクタには数値とポインタの区別がつかないから起こる 実際には到達可能でないオブジェクトを到達可能だと誤検出する(つまりリークする)事を防ぐための機能 俺の知る限り、C++のポインタは勝手にアドレスを変えたりできないから C++のGC ABIではnon-movingなGCだけが実装できるはず
566 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 08:20:09.29 ] 相互参照に対応出来るのかな? スタックや非マネージドな構造体のメンバに置いたら原理的に アドホックな対応しか出来なくなるから C++/CLIのような感じになるのかな と思ったけど www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#gc-abi アドホックっぽい気がす
567 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:40:58.40 ] 今回の規格ではライブラリ上でGCを実装できるように 最低限のことを決めたんですよ。メモリモデルとか。
568 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:54:27.79 ] メモリモデルについては決めたは決めたが正直これどーすんだよ的な気が 明示的な修飾したものだけマネージドにする割り切りがないとまたグダグダになりそう
569 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 15:28:38.63 ] strict GCのターゲットはC++でランタイムライブラリ書くような場合です。JVMとか。 C++のnative objectを対象にするのは相当先です。そっちは今のところコンサバのみ。
570 名前:デフォルトの名無しさん [2012/03/02(金) 17:11:30.31 ] またゼロオーバーヘッドがないがしろにされる悪寒
571 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:08:43.90 ] 別に将来GC必須になるって話じゃないよ >>569 (un)declare_no_pointersはexact GCを実現するための機能じゃない? もちろん、何もせずにexact GCになるわけじゃないから 現実的にはconservative GCにせざるをえないけど
572 名前:デフォルトの名無しさん [2012/03/02(金) 23:28:23.44 ] 次はもっとこの関数型のパラダイムをふんだんに盛り込んで欲しいな
573 名前:デフォルトの名無しさん [2012/03/02(金) 23:39:10.33 ] www.open-std.org/jtc1/sc22/wg21/ News 2012-03-02: The deadline for the next mailing is 2012-09-21 News 2012-03-02: The 2012-02 post-Kona mailing is available News 2012-03-02: The C++ Standard Library Issues List (Revision 78) is available News 2012-03-02: The C++ Standard Core Language Issues List (Revision 79) is available
574 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 09:57:33.79 ] メモリーモデル決めたのは、言語仕様内でプログラム作っても、並列処理のメモリー制約が不定になるからじゃないの?
575 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 16:10:12.22 ] GCも込みだよ。papersに出てるし、ハゲもコメントしてる。
576 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:32:19.81 ] 未だにテンプレートの定義ってヘッダに書かなきゃいけない処理系が ほとんどなの?
577 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:34:08.51 ] むしろexportは廃止された でも1翻訳単位内でのみ使うなら 別にヘッダで書く必要性はないで
578 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:38:25.21 ] あ、廃止されたんだ。 じゃあC++11でも依然として、複数の翻訳単位で使用するには ヘッダに定義書かなきゃいけないのか。 なんでそうなったんだろ。コンパイラに実装するのが難しかったのかな?
579 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:57:14.15 ] 複数の翻訳単位で使う場合もコピペすれば(ry exportはオブジェクトファイル側に手を入れないと実現不可能だよね
580 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/03(土) 21:17:31.75 ] マクロの高機能版だと思えば自然な制約。
581 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:40:36.07 ] コンパイル時に展開しないといけないから。 意図してこうなった。実行時オーバーヘッドを許容しない設計だから。
582 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:51:43.15 ] LTOとかやってるんだから同じ要領でexportもできるはずなんだけどな
583 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:55:11.30 ] 実装者が出来ることだけやればいいのが最適化。
584 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:15:06.01 ] extern templateもなぁ
585 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 03:03:01.74 ] 通常関数宣言にも可変引数使えれば良かったのにな。
586 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 10:52:22.84 ] ん?
587 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:00:32.38 ] 使えるだろ printfって関数をご存じない?
588 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:05:42.17 ] 文字列に変数を展開するだけじゃ自由度少ないだろ。
589 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:07:39.94 ] 何いってんのこいつ?
590 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:13:12.38 ] ご存じないならstdarg.hでぐぐれ
591 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 18:31:08.68 ] 独立参照利用すれば、可変引数みたいなのは表現できない?
592 名前:デフォルトの名無しさん [2012/03/05(月) 18:40:23.40 ] 一瞬、何のスレだったかとスレタイ見直してしまった たまたまアホばかりいるだけか、あーびっくりした
593 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 19:02:36.82 ] きめぇ構文使おうぜ それっぽく見えるだろ struct bb{ bb & bb::operator , (int i){std::cout<<i; return *this;} bb & bb::operator , (const std::string& s){std::cout<<s; return *this;} bb & bb::operator () (int i){std::cout<<i; return *this;} bb & bb::operator () (const std::string& s){std::cout<<s; return *this;} }; bb aa(){ return bb(); } void f(){ aa(), "aa", 0; aa()("aa")(0); }
594 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 19:08:32.78 ] おぞましいな
595 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 21:15:08.62 ] 無駄にカンマ演算子多用する輩は逝ってよし
596 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 21:59:11.39 ] タイプセーフな可変長引数が使えたらいいねって話かと思ってたら>>588 でビビった
597 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 02:53:36.28 ] Cの可変引数でいいなら、ポインタの型は全部void*でいいな。
598 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 11:39:41.36 ] 可変で静的型安全にやりたければ、引数可変部は同じ型じゃないと仕方ないな。
599 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 13:46:19.56 ] 現状だとiostreamやboost::formatみたいに 演算子をチェーンさせるのが現実的なのでは
600 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 14:02:34.58 ] オペレーターで連結するのは見た目がキモいのに加えてオーバーヘッドもあるしなぁ
601 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/06(火) 14:24:24.19 ] オーバーロードできる演算子の種類が限られてるから、演算子の既存の意味と全く違う意味で使うことになるわけじゃん? boost::format が % を使うのは iostream と組み合わせるときの演算子の優先順位を考慮したんだろうというのはわかるけど、 泥臭い方法だという感覚は否めないわな。 iostream の << はもうあんまり違和感ないから単なる慣れなんかな?
602 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 15:57:04.28 ] >>600 srdargに比べてどこがオーバーヘッド大きいですか?
603 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:03:20.05 ] >>602 それと比較してるのは今このスレで君だけだから帰っていいよ
604 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:11:06.07 ] >>585 のバカ話はとっくに終わってます。
605 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 16:18:15.19 ] ということにしたいのですね。:)
606 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 17:54:11.42 ] よく分かってないんだけど initializer_list使ってそれっぽくできないかな?
607 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 18:56:00.43 ] 確かにinitializer_listが一番近そう ideone.com/5P9Pa もうちょっと構文糖衣して欲しい気もするけど void f(const char* s, std::initializer_list<T> ls){ void f(const char* s, T... ls){ f("aaa", {10, 20, 30}); f("aaa", 10, 20, 30);
608 名前:デフォルトの名無しさん mailto:age [2012/03/06(火) 22:11:24.65 ] >>600 パフォーマンスに関しては、処理系にもよるけどインライン展開で消滅するから寧ろパフォーマンスは上がるじゃん。 まぁiostreamは遅いけど、あれはバッファの連携のせいだし。 話は変わるけど、Futureの例外送信機能ってどうやって実装されるんだ? Worker側で一旦例外捕まえて、Worker作成側が、例外受け取るまで 一旦何処かにコピーしなきゃならないだろ。専用の例外しか投げれないとかか?
609 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:23:32.73 ] >>608 exception_ptr というものがあってな。
610 名前:デフォルトの名無しさん [2012/03/06(火) 23:29:25.16 ] >>593 勉強になります
611 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:12:46.25 ] >>609 ありがとう。調べた。なんかランタイム情報取り出してる所が typeinfo見たいで気持ち悪いな。素直にthread_exceptionとかでも定義して その子クラスだけ返せるようにしたほうが良かったな。 どうせWorker中で他の例外に変換できなかった例外は Workerの呼び出し元でも無視されるんだし。
612 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:25:24.06 ] >>611 それ何がうれしいの? スレッドまたがせるためだけに原因と関係ない型を継承させる(カテゴリを作る)とか、 ありえないと思うんだけど。
613 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:47:43.79 ] >>612 スレッドの中で原因は完結させればいいじゃん。 最終的な答えを別の例外に委譲するだけ。 あと、スレッドを停止させた以上、スレッドは役割を 達成できなかったって例外カテゴリーに書き換えるから どのみち同じだと思う。 例えば範囲外エラーを例外で捕まえたくなったら、 結局out_range_errorじゃなくてOnOutRangeThreadStopErrorみたいな 例外に書き換えるわけだし。
614 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:50:59.53 ] >>613 いや、だからそのカテゴリわけすると何がうれしいの?わけないといけないものなの? 別スレッドで実行するか元スレッドで実行するかなんて実装の詳細の一部になりうるんだから、 そんなのしたくないんだけど。
615 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:52:03.03 ] ほかのスレッドの例外と自分の例外の区別つかない方がずっとまずい。 そしてC++は言語には最低限の機能だけ付けて、ライブラリで実装する主義。
616 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 01:59:10.04 ] >>614 カテゴリっつうかスレッドのコンテキスト情報を添える事になるからねぇ どういう状況かで例外処理を切り分けなきゃいけないじゃん 特にI/Oとか失敗したら、アドレスとか一部情報を書き換えて 再試行するって事もあって、再試行に必要なコンテキスト情報は送ってもらいたいよね
617 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:01:13.41 ] アドレスってのは送信先アドレスの事ね 別にI/O全般を例にしたからファイル名でもいいけど
618 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:30:58.64 ] >>616 その例で必要なのはI/Oエラーかどうかであって thread_exceptionなんて分類は役に立たんだろ?
619 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:09:13.71 ] >>618 スレッド間受け渡しの実装のために継承しちゃいかんのか? 分類のため以外で継承しちゃいかんのか?
620 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 20:53:57.29 ] thread_exceptionを新設するのが素直な解決法にも思えないし 「Worker中で他の例外に変換できなかった例外はWorkerの呼び出し元でも無視される」というのが常に成り立つ確信もないんだが こういう設計になってる言語があって、その言語を学べば分かったりするんだろうか?
621 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 21:20:12.05 ] Javaのconcurrencyで見たことあるな
622 名前:デフォルトの名無しさん [2012/03/07(水) 22:14:02.82 ] スレッドでWorkerとか言い出す頭固い奴は嫌いだ
623 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 22:26:07.08 ] >>619 分類以外にその継承の目的があるならそれを挙げろ。 繰り返し聞かれてるのに何も挙げられてないじゃないか。 無意味な継承を強制することが受け入れられないのは当然。
624 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 22:48:07.87 ] >>623 TLSに一旦例外オブジェクトの実体をコピーし、 呼び出しもとスレッドの例外情報取得用領域にコピーするため。 この時、TLSに領域を確保するため例外オブジェクトの実体のサイズが 必要になったるんで、そのサイズ取得を定義する。 あと、例外送信元のスレッドIDやらスレッド関数の情報を積ませる。
625 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 23:39:54.60 ] >>624 それって今の仕組みの上にアプリケーションが必要に応じて組めばいいことじゃないの? それともほんとに標準がそこまでやるべきだと思ってるの?だとしたらなぜ?
626 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 23:52:01.30 ] >>625 std::iostreamやらstd::string、std::vector、std::exception。 どれもユーザーが自前で実装しようと思えば出来るじゃん。 そんな事はどうでもいいんだけど、type_infoみたいに ランタイム情報にべったりってのが嫌なの。 処理系に問題がある場合、自前のライブラリで 一部差し替えて互換性をとるとかしづらくなる。
627 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:30:35.19 ] 実装できるかどうかなんて誰も聞いてないだろ。 「ランタイム情報」も何を指してるのかわかんないし。 コンパイラ実装依存の情報ってことなら継承もダメだよなぁ。
628 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:41:45.75 ] >>627 ランタイムってのは言葉端折ったけど、 ランタイムライブラリのことね。実行ファイルの中に 埋め込んだメタ情報やアセンブリレベルで 組み込まれた情報に依存してる訳じゃん。 継承とか目で見りゃ解るC++の構文上の互換性とは別の話よ。
629 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:59:56.34 ] ランタイム関係のトラブルについて具体的な例を書いておこう。 今回の例外とは関係無い話だけど、例外機構ってのはランタイム ライブラリにべったり依存してる。昔流行ったBCC5.5なんてコンパイラじゃ 例外処理が正しく動作しなかった。言語構文上だけで解決できれば 自前でそれをカバーするコードを書けばよかったがランタイムライブラリの 中に絡み混んでるせいでマトモに手の出しようがなかった。 例外に限らずこういう事がVCやらGCCでもあった時期があったんで、 出来る限り、ランタイムライブラリに依存しない方向で言語機能を 実現してほしいなぁと思うんだよ。あと組み込み屋も大変だろうしね。
630 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:02:39.61 ] 左様であるか
631 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:07:37.30 ] お粗末さまです。
632 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:25:33.14 ] 正直どうでもいいな。話が噛み合わんわけだ。
633 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 02:03:40.78 ] >>629 ほんとにどうでもいい
634 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:17:48.95 ] vtableのアドレスを自前で列挙して比較すればいいよ
635 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:55:29.38 ] 利便性のため標準的なスレッド補足情報を持つ thread_exception的なものがあるのは良いけど それしか返せないようにする必要は無いと思う
636 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 12:26:50.51 ] あほらし
637 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 12:34:08.63 ] >>630 >>631 >>632 >>633 >>636 具体的なことが書けないゴミはレスしない方がいいよ^^
638 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 13:53:52.09 ] 糞処理系乙
639 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 19:57:58.45 ] そうだそうだ今時VCなんて時代遅れな糞処理系 つかってるヤツは情弱にも程がある。
640 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:31:29.36 ] A と B の値から C を設定・取得する場合に std::map<std::pair<A, B>, C> std::map<std::map<A, B>, C> どっちでやるのがエレガントですか
641 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:33:30.22 ] このスレで聞くな
642 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:41:53.46 ] よく考えたら std::map<A, std::map<B,C>> こうだね boost::assign的なチート級の技も踏まえたらこのスレに辿り着いてしまったのよ 堅いこと言わずに教えてくり
643 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:55:20.90 ] >>640 下はあり得ない 上か>>642 だろうけど ぶっちゃけどう比較するかじゃね
644 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:04:11.68 ] pairのほうはメモリ効率悪いからmapのmapかな 検索効率は偏りによるけどあんまかわらんだろう
645 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:42:38.78 ] >>644 |A|>>|B|だとmapの数が増えることのほうが問題になりそう。 pairよりもmapの方がメモリ効率が悪いから。
646 名前:デフォルトの名無しさん [2012/03/08(木) 22:00:18.58 ] >>639 VCが何に使われているか実例を1つも知らないメタ情弱さん、ご機嫌麗しゅう
647 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:05:17.36 ] ランダムアクセスが前提ならmapのmapのほうが効率良くないか?
648 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:11:25.85 ] 何の効率か言わないと。
649 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:12:31.43 ] 正直、今時のCPUだったらどっち使っても大差ないでしょ 感覚的にはmap["key"][item]とかでアクセスできるからmapがいいんじゃないかなw
650 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:17:16.55 ] using std::make_pair; A a; B b; C c; _map[make_pair(a, b)] = c; _map[a][b] = c; こんな感じかな 後は気分の問題だと思うよw
651 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:37:50.43 ] mapのmapは列挙は面倒だな
652 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:57:32.90 ] みんなありがと 使い回す事を考えると後々mapのほうがやりやすそうだと思えたので map の map を使うことにします
653 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:13:36.49 ] boostに多次元mapなかったっけ。勘違いか。
654 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:15:29.30 ] 地図?
655 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:33:27.92 ] google mapを使えば楽だよ
656 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:50:48.85 ] google earthじゃなきゃ嫌だね
657 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:54:03.36 ] 異次元のマップにアクセスするにはどうすればいいですか ドラえもんみたいに色々な世界を旅したいです><
658 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 00:55:03.11 ] 次のC++の企画は開発されていますか?
659 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:01:51.77 ] C++1y
660 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:05:36.53 ] >>657 未定義動作のコード書いて運がよければ行けるよ
661 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:08:05.66 ] >>660 それってコンピューターが悲鳴上げてるだけじゃないですか 私 が 異 次 元 に 行 き た い ん で す !!
662 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:08:40.62 ] >>661 お前も行けるって 頑張れ
663 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:13:02.76 ] >>662 だからどうやって行くんですか! 以前だってlsコマンドの代わりにslと打ち間違えた時にせっかくお迎えが来たっていうのに あろうことか私を置いて行ってしまったんですよ! もういい加減お手上げしたい気分ですね!!
664 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:22:43.76 ] 教室で涼宮ハルヒの憂鬱(初版、流行る前からもってた)を読んでたら 「なぁ、それハルヒじゃね?」と後ろの席のやつにいわれた。 ちょっと怖い煙草とかすってるやつだったから 「うん、ハルヒ。それの一巻」って説明したら 「○○って長門に似てるよな」とクラスの女子のことを指さした。 大人しくていつも読書している小柄で可愛いこだった。 たしかにそっくりだったし、長門にも彼女にも好意を抱いていたので最高の笑顔で「うん」と賛同したところ おもむろに携帯で○○さんのハメ撮りを見せてくれました。 誰かハルヒのいる世界に連れて行ってください
665 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:26:41.34 ] まずはその話、本当かどうか確認する所からだ
666 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:33:02.36 ] 生身の女はかならず男を作るから期待はしないことだ。マンガやアニメじゃないんだよ。
667 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:37:10.93 ] いきなりスレの流れが物故割れた
668 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:58:32.12 ] >>666 その認識も行き過ぎだと思うぞ
669 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:10:19.53 ] いい年して男と付き合ったことも無い可愛い女の子なんて実在しないだろ実際のところ 見た事無いぞ
670 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:20:50.04 ] 実在すればそれはそれで気味が悪い
671 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 02:39:00.31 ] そりゃ死ぬまで純潔を守っても仕方ないよw 教室での話だったら学生時代だろ そのくらいの時期ならチャンスもあろうに
672 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:01:30.78 ] VIPでやれ
673 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:03:03.54 ] ここはMIPスレですが何か?
674 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 06:13:13.01 ] マングリ返しで何かがでまんぐりんぐwwwwwwwっwwwうぇw
675 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:15:38.15 ] >>646 それがどうした?
676 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:36:54.97 ] }
677 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:46:01.55 ] それは、希望さ。
678 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:51:21.76 ] const Class< Base(int), Base(std::string) > &constructor = ClassType< Delived(int), Delived(std::string) >(); std::shared_ptr<Base> base1( constructor.New( 10 ) ), base2( constructor.New( "10" ) ); 可変長テンプレートがあれば、こんなのがマクロ使わずとも 簡単に作れるんだろ、はよう実装してほしいわ。 なんであんなに対応が遅いんだ?
679 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:52:15.16 ] 同時に絶望でもある
680 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:54:15.22 ] /*
681 名前:デフォルトの名無しさん [2012/03/09(金) 21:14:47.98 ] */
682 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:23:49.45 ] begin
683 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:25:00.50 ] end
684 名前:デフォルトの名無しさん [2012/03/09(金) 21:29:54.03 ] imort java.io.Fire
685 名前:デフォルトの名無しさん [2012/03/09(金) 21:53:15.51 ] imort hosii...
686 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:56:14.68 ] using ga::aru::jan;
687 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 21:57:35.16 ] int main = 0;
688 名前:デフォルトの名無しさん [2012/03/09(金) 22:08:01.23 ] 関数型言語 C++
689 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:46:48.00 ] インポートなんてインポテンツなもんはいらない 妹が欲しいって言ってるだけだっての!! と、ミサカはミサカは>>685 の気持ちを代弁してみたり
690 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:48:13.61 ] main :: IO() main = return()
691 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:15:27.58 ] >>689 いらんつうかもっと高機能なusingが既にあるだろ。
692 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:18:41.91 ] むしろ俺の妹をもらってくれ、いらん
693 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:20:29.27 ] 692の妹「な、なりたくてあんたの妹になってやったわけじゃないんだからねっ」
694 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:42:24.10 ] C++を理解する能力よりも妹がいる能力が欲しい
695 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:17:13.05 ] C++なんかどうでもいい。 俺は君が欲しいんだ!
696 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:25:59.97 ] 冷静になれよ オマエと同じ顔の女が増えるんだぜ? 堪えられるのか?
697 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 02:32:26.13 ] 最近はテンプレートより、ソース吐き出すスクリプトでいいんじゃないかという気になってきた
698 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 03:51:52.89 ] 配列をゴチャゴチャ記述するのが面倒なんで スクリプトどころか表計算のTSV出力をincludeしてるわ
699 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 06:54:07.64 ] 初期化に必要な情報で値も固定されてるならそれでもいいんじゃない
700 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 07:02:44.37 ] >>698 細かいけどCSV(Cはカンマ)な。TSVのTはタブだからincludeしてもエラーになるだけだ
701 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 09:53:56.22 ] そうやって読み込んだCSVのデータを、テンプレートでソートする…流石に内容が分かっていてもソートは無理か
702 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:46:43.97 ] >>697 それだとデバッガがな。
703 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:48:25.05 ] >>697 C++ with ScriptかCへのTranslatorだった時代を思い出すな
704 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 20:51:29.22 ] >>703 CFRONTだっけ?SS1+だと重くて悲しかったがかなり世話になった
705 名前:デフォルトの名無しさん [2012/03/12(月) 21:52:24.62 ] cfront には超がつくほど世話になった
706 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 08:19:19.49 ] なんかノネナールの臭いがするよここ
707 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 11:37:59.68 ] 違います!熟成したカレーの臭いです!
708 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:40:57.92 ] ふむ。 >C++11の次はC++17となりそう ttp://d.hatena.ne.jp/faith_and_brave/20120307/1331103474
709 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 17:57:02.55 ] 確か0xは最初C++08になる予定だったから 次はC++20ですね
710 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 20:47:25.49 ] C++2038
711 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:11:11.02 ] >>708 5年間でC++11をマスターしないといけないの(´;ω;`)
712 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:37:05.56 ] ある言語でプログラムをするのにその言語の全ての機能を理解しマスターする必要はないだろ
713 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:39:24.62 ] 全単語覚えたら、英語話せます?
714 名前:デフォルトの名無しさん mailto:sage [2012/03/14(水) 23:50:09.44 ] >>708 03みたいなヤツか。C++11の処理系が完全になるのは2021年ぐらいか?
715 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 00:27:20.56 ] >>714 そしたら、C++17が遅れて、さらに処理系が完全になるのは何年か考えると、 もうC++はこれ以上覚える必要が無さそうだ(´・ω・`)
716 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 00:31:11.39 ] ライブラリへの変更と言語仕様への変更は、 確かに分けて作業した方がいいと思う。
717 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:12:43.25 ] C++xxにすればいいのに 学習しないね
718 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:20:12.18 ] (:xx:)
719 名前:デフォルトの名無しさん [2012/03/15(木) 23:37:54.75 ] マイナーは仕方ないが メジャーではばっさり切り捨てもやれ メタボ、しかも発癌してるのは切除しろ 特に例外。禿さまご乱心を黒歴史に早くしろ。 noexcept は廃止。二重否定はダメ。 throw でちゃんと作り直せ。 あくまでメジャーを標榜するのなら。 地味ながら普通の new もな。 特殊化のクソもいつまでgdgdやってやがる、 そういうところこそ禿、がんばれよ。
720 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:51:50.88 ] こんだけ年寄りなら癌でも進行が遅くて簡単には死なんだろうよ
721 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 04:30:41.90 ] msdn.microsoft.com/en-us/library/hh567368%28v=vs.110%29.aspx 何がどうpartialなのかちゃんと書けよオウ
722 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 08:07:46.82 ] 二重否定がダメっていうのは、 英語(他の言語はしらない)の文法学者がただ気に入らなかったから、というだけなんだぜ。 ダメっていう雰囲気が蔓延する前は普通に使われていたんだから noexcept を嫌う理由にはならない。 まあ throw(false), throw(true) ではなぜダメだったのかわからないけどさ
723 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:29:04.47 ] throw(Foo)のときにFooが型か値かで意味が変わっちゃうからだろ多分 どうでもいいのに
724 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:32:27.96 ] って書いてて今わかったこれだ throw(Foo()) Fooが型の場合、引数なしでFooを返す関数の型を例外指定してるのか デフォルトコンストラクトしたFooの右辺値をboolとして評価するのか区別が付かないから
725 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 19:52:41.76 ] あー constexpr と競合するってことね
726 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:22:08.40 ] まあtrue/falseでするとなるとthrowとは別のキーワードが欲しいわな throwは型を取るものだから、使い回したくはない かといってexpectとか普通に何かで使われる事あるだろうし nothrowもstd::nothrowと被るしで まず使われてないだろうというnoexceptになったのかねえ throw<true/false> というのもキモいよなあ・・・
727 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:32:36.38 ] #includeはいつ廃止されますか
728 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:16:32.52 ] >>726 そういう時こそ[[ ]]を
729 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 04:46:54.98 ] >>727 廃止は当分無理だろうけど、 次回の規格改定には、かなりの確率でモジュールが入る。
730 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 08:53:32.99 ] またexportと同じ道を辿ることは無いのか
731 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:35:32.29 ] #includeなくなったらコンパイル時間短くなる?
732 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:46:18.27 ] 理論的にはD言語くらいには速くなる
733 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:56:34.88 ] ないない そんな簡単ならプリコンパイルドヘッダでもそれなりに速いはず Dをなめてはいけない
734 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:58:41.83 ] C++っぽいけどC++じゃない言語を作ったらどうなの C++からのトランスレータが作りやすい仕様にして
735 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:10:29.01 ] C++からのトランスレータって、結局フルのC++コンパイラを作るのと労力変わんないんだが おまけに大抵のヘッダではマクロも込みでAPIだから、完全に活用するにはターゲット言語が細かい文法含めてC++完全上位互換である必要がある=C++の新バージョンと変わらない 要するにC++は局所解にはまりこんでる
736 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:16:19.58 ] ついでに完全性を求めないなら、わざわざ新言語を作らなくても既存言語へのトランスレータは結構あるぜ
737 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:24:21.18 ] >>734 C++の機能を保ったまま文法を変更するって論文がどこかに転がってたと思うが、 まあ、やはりどうもC++の文法に慣れた身には見慣れない文法になってたな。 >>735 今のC++の思想は、既存の汚い方法(プリプロセッサー)は互換性のために残しつつも、 より優れた方法(constexpr)を導入して、 自発的な移行を促すってのだが。 うまくいくかねぇ。 なんだかんだいっても、字句単位での置換は強力だからなぁ。
738 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:34:08.33 ] >>737 思想とか関係ないよ C++のヘッダからプリブロセッサがなくなっても、Cのヘッダを全くincludeしないとか無理でしょ
739 名前:デフォルトの名無しさん [2012/03/17(土) 16:02:19.09 ] C++を見限りたい気持ちでいっぱいだが次の言語が見つからない
740 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:15:40.11 ] ようこそD言語へ
741 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:16:55.23 ] やはりマクロが癌だよなあ
742 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:24:08.49 ] D言語は10年くらい仕様を固定できたら選択肢に入ってくる
743 名前:デフォルトの名無しさん [2012/03/17(土) 16:26:41.04 ] マクロが癌は言いすぎ。右辺値参照とか、constexprとかの方が 「もういいかげんにせえや!この禿のパリサイ人共が」という気になるw
744 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:32:45.60 ] 右辺値参照とかさっぱり理解できんけど ただでさえ速いSTLが何もしなくてももっと速くなるなら有難い
745 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:48:44.63 ] インテリセンスの性能が悪いのも リファクタリングし辛いのも 全部マクロのせいや!
746 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:06:11.95 ] トランスレータはデバッガ作るのが辛すぎる。
747 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:09:11.20 ] D言語作ってる人って、失敗作ばっか作ってる人でしょ
748 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:14:43.22 ] トランスレータはあくまで過去資源を利用するためのもので
749 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:24:03.08 ] rvalue referenceは当然の機能だろ。 というか今までの、constなlvalue referenceでprvalueを束縛できることのほうが変だっただろ。 まあ、この挙動は今更変えようがないがな。 まあ、別に理解できんユーザーが理解する必要はない。 コピーやムーブの実装はライブラリ作者が考えることだ。 >>744 のいうように、STLがなにもしなくても速くなる。 C++11では、STLのクラスを普通に関数の戻り値として返しても、 何のパフォーマンス上の問題もない。 std::vector<int> f() ; int main() { std::vector<int> v = f() ; // ムーブされる。ユーザーが詳細を理解する必要はない }
750 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:30:13.28 ] 何のパフォーマンス上の問題もない、は言いすぎだな。 ムーブ後の一時オブジェクトのデストラクタだって走るし、 ムーブコンストラクタだってただでさえ肥大化傾向の実行ファイルのコードサイズを更に膨らませる。 GCのある言語や v = f() ; を f(&v); として最適化できるタイプの言語ならこういうのは全撤去できるかんね。
751 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:48:13.43 ] かなり斜めだな。
752 名前:デフォルトの名無しさん [2012/03/17(土) 17:59:28.29 ] >>749 うん、そうだ。 ま、せいぜい頑張ってくれ。 俺はつき合う気になれんがw
753 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:25:08.08 ] 入れ物を引数で渡したり戻り値をauto_ptr<std::vector<int>>とかに する必要がなくなっただけで十分ありがたいです
754 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:26:16.53 ] NVROも実装してなかったコンパイラがC++11をサポートできるのか
755 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:43:06.65 ] D言語はGCが余計だったんじゃないかと思ってる
756 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 20:27:22.86 ] >>750 つってもムーブ後のオブジェクトなんだから、 一切最適化されなかったとしても、関数呼び出しとか、 すでにムーブされた後であるかどうかを判定する条件分岐の実行とかそれぐらいだろ。 std::vectorだったら、確保した動的ストレージへのアドレスを格納している ポインター型のメンバーが、nullptrであるかどうかの条件分岐ぐらいだろ。 コードの肥大化っていったって、 ムーブコンストラクターを書くのと、 ムーブ処理をその場にハードコードで実装するのは、 結局同じじゃないか。
757 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 20:35:42.42 ] >>756 発想がC++に縛られてるなあ。 例えばf()がv領域をallocaしてそのままvとして使うなら、そもそもムーブという概念自体要らない。 そういう言語もあるんだよ。
758 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:21:34.90 ] moveとか右辺値最適化とかの新機能についていけてないのだけど、 なんとなく>>750 のように変換されるのかと思ってた。違うの?
759 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:56:00.14 ] 違うよ
760 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:57:42.75 ] 「最適化でコピーは消えてくれるよね……?」と心配しながら ベクトルを返さなくてはいけなかったのが 「どうせムーブだし最適化されなくてもいいや^^」と安心して ベクトルを返せるようになったってのはいいことだよ。
761 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:15:30.59 ] ムーブも一応ムーブのコストがあるからなあ 戻り値最適化が期待出来る部分ではムーブは劣る
762 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:27:54.38 ] コピーが最適化されて消えるところではムーブも消えるよ。 コピーなら消せる、ということがわかっている箇所で、 ムーブコンストラクタが定義されているときだけ最適化抑制するって どんなアホコンパイラたよ
763 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:41:23.56 ] >>758 ユーザー定義する方針なんで、 変換してくれるってのは根本的に発想が違います。
764 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 23:43:12.27 ] >>754 出来れば嬉しい最適化と 必須の仕様の違いがありますから。
765 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:12:38.75 ] >>762 そういう意味じゃなくてだな・・・ 戻り値最適化使った方がいいケースで ムーブがあるからムーブでいいやとするケースの話で
766 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:15:44.12 ] どういうケースかよくわかんないからC++でお願いします
767 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 00:49:15.82 ] ものすごく適当な例 std::vector<int> a = hoge(); foo(a); a = foobar(); bar(a);
768 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:03:33.14 ] vectorって代入される時にもともと持ってるデータを解放してるよな ムーブでいらなくなったデータが一時変数のデストラクト時に解放されるのと比べて 本当に戻り値最適化のほうが性能的に有利になるのか? ていうか、そもそも戻り値最適化って初期化する時だけしか有効にならないような
769 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:06:05.10 ] 考えるほどムーブのほうが都合がいいという結論になる
770 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:08:36.76 ] 2つ目のは戻り値最適化じゃなくムーブになる、という例だよ swapの分だけコストはかかるはず まあこの例だとこの程度どうでもいいんだけどね
771 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 01:46:57.56 ] >>735 現時点でアセンブリに変換できてるんだから、 完全上位である必要ないだろ
772 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 13:51:34.67 ] auto_ptrが理解出来てmoveが理解出来ない人は頭おかしい
773 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:09:37.16 ] auto_ptrはもはや理解する価値がない。
774 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:17:45.12 ] >>767 a = foobar();はC++03ではコピーになるからmoveより高コストになるな それにa = hoge();でも std::vector<int> hoge(){ std::vector<int> r; ... return r; } のように書いた時点で戻り値最適化は効かないから 関数の実装にかなり制限が掛かると思うが
775 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:27:36.50 ] いや、効くだろ
776 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:27:56.48 ] >>774 NRVO搭載してるCompiler。具体的には、cl.exeなら最適化されるべ。
777 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:30:05.59 ] >>773 auto_ptrはunique_ptr+moveに置き換わるんだから当たり前だろw C++11からC++に入る奴の話じゃねぇよ
778 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:33:35.35 ] 流れぶった切るけど、noexcept()って、template<bool mode>てなテンプレート宣言したクラスで noexcept( mode )って事ができるの?できないなら、throw()で十ぶんじゃね?なんの意味があんの?
779 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:35:17.43 ] できるだろ。
780 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:35:45.15 ] >>778 できるんじゃない? そういう用途だろう、当然
781 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:41:56.52 ] boost::shared_ptr、std::auto_ptr、std::shared_ptr、 相互変換はどうすんだろうな。過去の資産を再利用するなら 古いポインター使いつづけるしか無いんだろうな。
782 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:45:18.13 ] まあそうなるな
783 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:47:40.64 ] はぁ?
784 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:52:32.20 ] 相互変換とか
785 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 14:56:36.23 ] 参照カウンタどうすんだよ
786 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:19:38.37 ] boostとstdのshared_ptrに互換性がないのが困る
787 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:21:12.07 ] 別にboost::shared_ptr使い続けりゃいい あるいはstd::shared_ptrに置換するか
788 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:53:38.67 ] C++11になって、事実上の廃止ってauto_ptrの他にどんなのがあるの?
789 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:06:51.34 ] unary_function類とbind1st類
790 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:10:38.39 ] あんまりお近づきになりたくない機能だと思っていたのでなによりです
791 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:34:17.38 ] bind廃止なのか…
792 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:43:21.59 ] bindが追加されたからいらなくなったんでしょ
793 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 07:23:11.87 ] boostのやつが導入されたんだっけ 別にラムダでいい気もするけど
794 名前:デフォルトの名無しさん [2012/03/20(火) 17:48:44.11 ] テンプレ引数付きtypedefってクラス内のtypedefでも使えたりするんけ? いままでクラス内クラスについてはテンプレに出来なかったよな
795 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:13:04.34 ] あーもうこんな複雑な言語、個人で使うならともかく、それなりのプロジェクトで使うとなると・・・。 これ、もう、オタクの玩具でしょ。
796 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:20:28.61 ] エイリアステンプレートはクラス内でも使える。 ただ、本当にメンバーテンプレートなエイリアステンプレートを使いたいのか? 苦労するだけだぞ。 struct X { template < typename T > using A = T ; } ; template < typename T > void f() { typename T:: template A<int> i ; } int main() { f<X>() ; }
797 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:20:31.35 ] そもそも、システム開発用の言語がこんなに複雑な必要性って、在るのかねぇ。
798 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:22:47.48 ] システム開発用の言語だからこそ 高速化の為なら何でも取り入れるべき
799 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:28:17.17 ] システム開発的には安定性の方が重要だよ。 だから、Cでシコシコやってるのが丁度よい。
800 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:39:36.68 ] >>796 template< typename T > using Vector = Geometory::Vector<T, 2>; ベクトルの次元は絞るが、型は何でもいい場合。一種のカリー化したいとき。
801 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:48:19.55 ] C11の_Genericみたいな糞機能はC++に輸入しないで欲しいよな まあこれに限らずC11普及するのかよって話もあるけど
802 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:04:29.71 ] ABIを壊さずにオーバーロードを実現するための _Genericは今更C++には無用だろ
803 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:30:39.42 ] C99すら・・・
804 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 20:54:57.83 ] >>799 安定性と「Cでシコシコ」の関連が不明です。
805 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:00:03.01 ] Cなら10年前どころか20年前のコード見ても古いと感じないが C++の10年前のコードは腐臭を放ってる
806 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:01:20.58 ] それ、個人の慣れの問題じゃないの?
807 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:03:04.20 ] Cってだけで時代を感じるな
808 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:40:34.26 ] C++は仕様が固まってから日が浅いからね
809 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 22:40:14.22 ] >>808 まだ固まってない
810 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 23:12:55.33 ] 使い方判らない機能は必要のない機能だから使わない方がいいよ。 いずれ、あー、こんな機能あれば安全なのになぁって必要になるときが来るけどね。 それまでは使わなくてよろしい。
811 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 09:00:55.10 ] >>810 基本はひととおり知っとく必要がある。 そうやって必要な知識を遠まわしにして、 ものすごい面倒で複雑なロジックにする アホがいっぱいいるんだ。
812 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:24:26.71 ] 積極的に使わなくてもいいが、知らなきゃ他人のライブラリは使えなくなるからな
813 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 01:21:11.57 ] 規格そのものとは関係ないが、翻訳単位が関数単位に出来ないかねぇ。 一つの関数なおす度にファイル一本コンパイルしなおすっつうのもウザい。
814 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:23:57.47 ] 1ファイル1関数にすればいいのでは
815 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 09:50:16.86 ] てめえで1つのファイルに書いておきながらうざいとか言っちゃう人って
816 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 20:25:44.96 ] そもそも構造違うけどSmalltalkなら関数(Method)単位で処理してくれるんだけどね
817 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/22(木) 20:28:39.00 ] Common Lisp もな
818 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:30:18.91 ] (object.*function); 関数のポインタを逆参照したときの値って 未だ未定義なんだよな。もうクロージャにでもすりゃいいのに。
819 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:03:03.61 ] 関数とメソッドの違いに注意な
820 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:12:19.98 ] メッセージを送るセレクタにより起動されるのがメソッド ディスパッチで呼び出されるのがメンバー関数
821 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:16:29.95 ] 最近はメソッドをまともに実装した言語も少ないな
822 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:32:30.62 ] int (__closure function)(int) = object.Function; int (__closure function)(int) = object.*Function; Borlandのコンパイラじゃこんな感じにクロージャに出来たんだけどな C++本家にゃ取り込まれず今じゃ.net環境でdelegateとして活躍しとるとは なんか皮肉だのう
823 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:40:32.27 ] >>822 だってそれDelphi互換用のためだけの機能だったし。 __closureって名前も紛らわしすぎる。ラムダが入った今となっては特に。
824 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:48:43.06 ] Delphi互換かどうかはどうでもいいし、別に__closureって予約語もいらん。 ただ、std::function<int(int)> function = object.Function;って書けるなら ラムダ書かずに済んでありがたい。そもそも、関数がオブジェクトだってのは Smalltalkの様で自然だ。
825 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:52:30.80 ] C#なみにラムダの記述量が減ってくれるとありがたいのだが
826 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/22(木) 23:53:10.27 ] >>819 だよな。 メンバ関数のことをメソッドって言うな!! って思うよな。
827 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:56:46.31 ] それでもまだBlocksさんに比べれば……
828 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:59:48.18 ] >>824 変に規格に入って、VC++のABIがBorland(ってか現Embarcadero)のそれと違ってしまったら 肝心のC++Builderが困るじゃないか。
829 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:08:13.52 ] >>824 型が弱すぎ
830 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:18:01.36 ] >>829 なんだそれ?
831 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 08:58:04.19 ] >>828 ABIなんて今までも互換性無かったのに今更
832 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 09:12:14.81 ] クロージャっていまだに良くわからん
833 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 09:13:08.84 ] >>831 折角64ビットで統一されたんだから
834 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 12:43:50.05 ] Delphiってオブジェクト毎に関数ポインタを生成するために 動的コード生成やってなかったっけ
835 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:10:43.70 ] >>834 やってない。単なる関数ポインタとthisの組。Dのdelegateなんかも同じだね。
836 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:23:43.28 ] >>824 > std::function<int(int)> function = object.Function; virtualだと単なるポインタじゃ済まないな。 関数内でthis使ってる場合も同様。 staticなメンバー関数以外、型安全にならないんじゃないの?
837 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:26:47.91 ] >>836 object.Functionの時点でVMT参照して解決してしまえばいいんでそれは問題ない。 C++のメンバ関数ポインタと違って、後でthisだけ(orメンバだけ)取り替えたりはしないんだから。
838 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:33:27.87 ] >>836 要するにstd::bindの構文糖にしろって事だけどわかってる? auto function = object.Function; auto function = std::bind( &Type::Function, &object. std::_1 ); それとも、もしかしてstd::functionの構造知らないの?
839 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 12:07:17.57 ] 最近のC++のディスられようがウザい。 DなんたらとかHasなんたらなんてどうでもいい。
840 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 13:16:00.33 ] 普通にC++について語ったらDisってるようになってしまう C++がうんこすぎるから
841 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 13:31:57.59 ] 実用言語と実験言語を比べられてもな
842 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:36:27.00 ] そうそう、C++は実験言語なんだからdisってもしょうがない。 その成果は確実に実用言語に受け継がれているよ。
843 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:46:29.13 ] Dこそが真の実用言語だよなー
844 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:22:54.00 ] >>842 その実用言語って何
845 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:39:47.12 ] 融通が利かないことを実用って言うのはちと無理があるわな ネイティブ吐けてシステム記述できてCの資産が流用できる言語が他にないから 仕方なくC++使ってるってのが実際 いくら流行の機能入れても元が腐ってるからまともな言語設計が出来るはずもない 中の人に呪術染みた技巧コードを量産するテンプレートオナニストが集まりすぎた Dが実用ってのはもっと無理だ 書きやすくていいんだけど今んとこ遊びにしか使えないよ
846 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:39:35.33 ] >Cの資産が流用できる言語が他にない これは大きいね。Cは仕様がコンパクトでコンパイラを簡単に作れるから 「高級言語としてCだけはある」みたいな環境がぼろぼろ存在するからね。 Cの資産は膨大だ。
847 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:55:18.22 ] FFI知らんの?
848 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 19:54:59.63 ] 欧陽菲菲ネ
849 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:16:11.58 ] もっとマシなものがあるなら流行っているはず
850 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:38:53.28 ] >Cの資産が流用できる言語が他にない Objective-Cがあるだろ
851 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 03:54:06.49 ] はぁ?
852 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 04:20:52.18 ] Objective-Cは11より変態だろ…
853 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 04:47:53.01 ] ObjCが変態なのは否定しないけど、なんで変態なのかというと追加された文法がCから見てキモいからだろう。 (機能的には、OOP部分と組み込み型が別体系ってのは珍しくない。JavaやDもそうだし) C++もenum classやunified function syntaxでCとは別物を被せる方向に舵を切ったじゃないか。ObjCのことは言えないと思うぜ。 あと曲がりなりにも実際に大規模に使われてる言語に対して「はぁ?」とか反応しちゃう視野の狭さが、 もっとマシなものが出てこない一番の原因と思うね。
854 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 05:38:10.01 ] 例え嫌々だろうが必要な時に使えて目的に適うならそれでいい。それがC++。
855 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 06:36:45.23 ] C++は落ち目
856 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 06:40:37.27 ] じゃあ上り調子のC#でも使うか
857 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:21:17.05 ] ObjCはCの理念と反するからな 実行コストがかかりすぎる
858 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:47:11.20 ] けっきょくC++しか選択肢がない
859 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:55:12.81 ] そう思ってるのはC++使いだけ C使いはC++も実行コストかかり過ぎだって思ってるよ
860 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:57:07.41 ] けっきょくC/C++しか選択肢がない
861 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:57:08.63 ] あぁ、「思ってる」な。知ってるぜ。
862 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:58:01.60 ] そう思ってるのはC使いだけ アセンブラ使いはCも実行コストかかり過ぎだって思ってるよ
863 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 07:59:52.11 ] でもC++は落ち目で、Cはそうじゃないけどね
864 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:01:02.85 ] CもC++使いもあと数年すればDに駆逐される運命だと言うのに哀れよのぅ
865 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:01:31.65 ] >>849 良いものは自然と普及するという考え方はやめた方がいい
866 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:05:05.06 ] Dってそんなにいいか?
867 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:09:40.92 ] Dは誰にも見向きされずに消えていく…
868 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 08:21:54.93 ] D覚えるくらいならC++と他の高級言語を使い分けるほうがいいからな
869 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 09:11:22.75 ] C++覚えるぐらいならCと適当なスクリプト言語でいいって層の方が多いと思うぜ
870 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 09:36:59.37 ] Dは配列でLinqできるのが面白かったけど、発展途上の時はメインには押し難い。GCはプラス要素だと思うんだけど。
871 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 11:05:16.29 ] Objective-Cの実行コストってCに比べてどんくらい落ちるもんなの? Effective C++の序文によるとC++は5%以内ってハゲが決めてるそうだけど Objective-Cにもそういう約束事があるのかしら?
872 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 11:26:27.63 ] >>871 Objective-Cのメソッド呼び出しはインタプリタ言語並の遅さ
873 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 12:46:09.18 ] Objective-CはC++でラップしてしまえば 後はC++で作れる
874 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 14:39:25.43 ] な、俺の予想したとおりになったろ
875 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:01:51.25 ] ああ、すごいごい。 で、どんな予想したの?
876 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:37:31.14 ] >>859 そういやCよりC++の方が遅いとはよく聞いたが、 あれの根拠はなんなんだ?実行イメージのロード時間? C++のライブラリ使わない限りCと速度が変わることはないはずだが。 あと、C++のライブラリ使わず単に言語機能だけでコードを組むと 大概Cより速くなるんだがな。仮想関数とか分岐が固定されてると インライン展開されて構造体に突っ込んだ関数のコールバックより速い。
877 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:39:38.88 ] >>872 どんな言語でもメッセージ送信と同等の機能を組めば同じような速度だろうけどな。
878 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:43:00.53 ] >>876 C++にはrestrictが無い(コンパイラの独自拡張を除く)
879 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:48:57.84 ] >>878 なにC++11ならあるだろ。じゃないとインターフェース互換なくなる。
880 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 20:59:19.93 ] Cとインターフェースレベルでの互換性なくしたら標準ライブラリとか阿鼻叫喚になるわな。 何が楽しくて同じ関数をC用とC++用二つもつくらにゃならんのだ。
881 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 21:03:59.88 ] >可変長配列 (VLA) は含まれない (天のお恵みに感謝!) www32.ocn.ne.jp/~ons/text/CPP0xFAQ.html.ja#C99 何がお恵みに感謝だよ。シネバいいのに。
882 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 21:46:47.36 ] C++11にrestrictがあるというソースくれ
883 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:15:49.72 ] ねえよ
884 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:27:35.98 ] >>882 restrictがあるというと正確ではないかもしれんがC++ 11 FDIS §17.2のあたり
885 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 23:07:03.45 ] >>871 んなこたぁない
886 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 06:56:53.40 ] >>884 C++にはrestrictが無いって書いてあると読めますね
887 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 06:59:42.26 ] より正確には、CのライブラリにrestrictがあってもC++はそれを無視すると書いてある > The descriptions of many library functions rely on the C standard library > for the signatures and semantics of those functions. > In all such cases, any use of the restrict qualifier shall be omitted.
888 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:19:37.77 ] 無視しろっていう意味ではなくて restrict を消したヘッダを別に用意するか マクロで消すかしろってことだと思うな、その箇所。
889 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:22:31.14 ] そうなんか。処理系が頑張るんじゃなくて(ある意味人力で) restrictの記述を落とすのか... 確かにそう読めるな
890 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:26:35.37 ] 素直に無視すりゃいいのになんでそんな面倒な事になったんだ?
891 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 08:28:56.21 ] 17.2 は 「C標準ライブラリは一部変更を加えて、C++でも提供する」 細かい変更箇所はあとで言うけど restrict についてはいちいち述べているときりがないから 「restrict は一律消去で」ヨロ という意味 restrict 以外にも変更箇所はあるのに、これだけ特別扱いで 言語レベルで無視というのは非合理かと
892 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 16:14:01.14 ] C++からCのライブラリを使うという観点では、 restrictはライブラリ書く人が、 利用者に対して利用上の注意を求めるものだから、 無視しても実装が警告の機会を逃すくらいしかデメリットがない。 大域変数の修飾でも最適化の機会を逃すだけ。
893 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 16:21:01.47 ] 亀レスだが、 Objective-Cのメソッドディスパッチは hash table引く。 メソッド名文字列からメソッドIDを生成して、 オブジェクトにsend出来る。 だから低レベルな小さいクラスライブラリ提供が無理。 そういう部分での設計はCでも行う必要があり、 OOな設計スキームを使う場合、 二種類のOO実装射影が必要になる。
894 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 17:48:44.24 ] >>891 > restrict 以外にも変更箇所はあるのに、これだけ特別扱いで C文法でC++11としてill-formedになるのってrestrict絡みだけだと思ってた _Boolやら_Genericsやらはアンダーバー大文字始まりだから予約シンボルでどうにでもなるとして 他に何かあるの?
895 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:00:54.27 ] まとめるとObjective-Cはリンゴ臭いからきもい
896 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/28(水) 20:11:50.27 ] >>894 コンパウンドリテラルは C++11 に入らないことになってたような。
897 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:30:51.82 ] 配列の添字指定の初期化とか 構造体のメンバ指定の初期化とか そういうのも入らない
898 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:44:41.25 ] >配列の添字指定の初期化 それはgcc拡張ではないかい? gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
899 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:46:14.14 ] 悪い 俺が間違い
900 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:55:36.47 ] >>896 乙
901 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:56:08.76 ] >>895 乙 >>900 はミス
902 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/28(水) 20:56:14.47 ] >>899 お前誰だよ。 ID 無しだとわかりにくいから解説しとくと >>898 の方が間違いで >>897 が正しい。
903 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:58:33.39 ] 俺だよ俺
904 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:01:41.28 ] いや、オレオレ。
905 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:02:22.83 ] 俺だっつてんだろ
906 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:07:55.05 ] え、俺わかんね??? >>897 は文章どおり11の仕様には入っていないと言っている >>898 はGCC拡張だから11の仕様には入っていないと言っている どっちも11には入らないって言ってるんじゃなく? おまいらが何言ってるのか教えろください
907 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:16:18.28 ] >>897 はC99には入ってるけどC++11の仕様には入っていないと言っている >>898 はGCC拡張だからC99の仕様には入っていないと言っている(誤り)
908 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:19:30.83 ] よくわかる解説ありがとう
909 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:55:23.61 ] >>893 そもそもそういう用途を想定してないからな。 あくまでもモジュール理論の体現を目指したもので、 大規模コーディングを主戦場に想定してるから。
910 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:24:22.03 ] 配列の形で記述された引数の [ ] の中に const とか入れる文法もC++11に入らない
911 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:25:18.17 ] 動的にサイズを指定できる配列も入らない 入らない仕様はかなりあるのできりないな
912 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 07:41:46.40 ] そういや複素数型ってどうなってるんだっけ?
913 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:01:27.83 ] Cとの互換性だけが取り柄の言語なのに... C++にはCの仕様を取り込むか否か 選択する権利など無いのに勘違いしちゃってるな
914 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:11:41.53 ] むしろ何でrestrictを仕様に入れないんだろう ベクトル化とかの最適を考えると困るはずなのに C89/C++03以前のように、プラグマで対応するっていう事?
915 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:17:12.15 ] まあ現実には「昔の」Cと実用レベルで互換が取れてれば構わんのだけどね 最新のCなんて最新のC++以上に使われるか怪しいわけだし
916 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 08:23:21.65 ] 構造体のメンバ指定の初期化は結構見る気がするなあ。 ヘッダファイルに現れないなら関係ないか。