- 1 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 21:53:47 ]
- The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/ wiki ja.wikipedia.org/wiki/C%2B%2B0x C++0x pc11.2ch.net/test/read.cgi/tech/1149440647/ C++0x 2 pc11.2ch.net/test/read.cgi/tech/1191842951/
- 684 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:57:30 ]
- 規格書いてる奴らが作る訳じゃないからな
2020 ぐらいじゃね?
- 685 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:04:38 ]
- だが実装可能性ぐらいは考えて欲しいんだぜ。
- 686 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:41:55 ]
- もう委員会が「完全準拠のコンパイラを最初に作ったチームに賞金」でいいだろ。
商用コンパイラとかだとその賞金が売り上げを下回るっていう可能性もあるから、 MSの無償配布してるものと同じ様なライセンスでなければいけないとかいう条件をつけてさ。 そうすれば販売方法を確立できない個人でも目指す事ができるし、万が一先を越されてしまっても その場合は販売すれば良い。
- 687 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:53:55 ]
- C++03の下位互換性から考えると、exportも必須なわけか?
そんな非現実的で理想を追求した完全準拠のコンパイラは、まず実用にはならないと思われる。
- 688 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:07:34 ]
- 外部テンプレートなんかさっさと規格からぶち殺して
貴重な予約語exportをもっと他の有意義なことに使えるように努力すべき
- 689 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:47:46 ]
- >>686
個人でやれるような範囲の話ではない
- 690 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:16:07 ]
- MSがバイナリインデックスの並び順で特許取っててそこをCOMに使ってるから無理
テーブルを先頭に持ってくるんだったか程度のもの
- 691 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:22:03 ]
- 特許なんてそのうち切れるさ
- 692 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:23:11 ]
- vtblを頭に持ってくるって話?
ABIだと思ってたが、特許なのか?
- 693 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:46:26 ]
- >>684
Conceptは、Douglas Gregorが規格も処理系(ConceptGCC)も書いてるよー。
- 694 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:25:18 ]
- そのGCCではあのクソ気持ち悪いラムダ式とかもコンパイルできるのかい
だったらちょっと試してみたい
- 695 名前:デフォルトの名無しさん mailto:age [2008/05/29(木) 06:43:01 ]
- これはconcept branchだから、
他の新標準機能は入ってないよ。 gcc.gnu.org/projects/cxx0x.html lambdaはgcc headで実装始まってるはず。
- 696 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 08:49:35 ]
- >>686
2100頃までC++は生き残るわけですね分かります
- 697 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:46:02 ]
- std::*Integralが、
std::*IntegralLikeになってやがる。 FloatingPointLikeってなんだよ // Revision 1の頃から変わっていたのか
- 698 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 13:39:48 ]
- C++0xはそろそろJavaの時のような誇大広告を始めて盛り上げるべき。
- 699 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 13:52:25 ]
- どんだけ人集めてもmove semantics見たらみんな引くって。
大衆には見向きもせずプログラミング言語の実験室として頑張っていただきたい。
- 700 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:03:10 ]
- もはや C++ 自体が大衆向けじゃないよな。
でも、必要としている一部の人間のために頑張って頂きたい。w
- 701 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:05:12 ]
- まずはまともな処理系を、話はそれからだ
- 702 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:11:26 ]
- Move SemanticsとかVariable TemplateとかConceptとか、
ライブラリを書く奴のための機能だから、 一般ピーポーが覚える必要は無いんじゃない? とは言ったものの、どうやって実装しているか分からないと、 俺としては、使う気にならなかったりするから微妙だ。 STLヤベー、超便利ー。 ↓ イテレータとか関数オブジェクトとか分からん。勉強するか。 ↓ いわゆる、STLの解説本とかではまともに説明されてねー。何コレ。 ↓ テンプレート解説本なら詳しく載ってる。やっべ、スゲー詳しい。面白れー。 ↓ Boostたのしー。 ↓ あれ、当初の目的って何だっけ? STL? デザインが貧弱すぎじゃね? あれって。
- 703 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:25:03 ]
- 素人の人たちに受けのいい機能も少し追加されたんじゃない。
auto とか。
- 704 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:26:10 ]
- conceptだってコンパイル・エラー見やすくなるしね。
- 705 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 04:01:49 ]
- 今回は入門者のためにもなる改良がたくさんあるとどこかで聞きました
- 706 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 14:58:46 ]
- c++であと10年は持つのかな
すでにフォートラン化しはじめてる?
- 707 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:44:53 ]
- 当分、いろんな意味でC++を越える言語は出てこないだろうな。
- 708 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:08:45 ]
- export イラネ
予約語から外してほしい
- 709 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:23:20 ]
- export の実装って結局二度以上同じソースをコンパイルしてるだけだからな
prelink 工程というのがあってそこで全部解決するまで再帰的にコンパイルしつづける 関数がインラインにならないという効果はあるがそれ以上の利益はない気がする
- 710 名前:デフォルトの名無しさん mailto:age [2008/06/05(木) 21:53:24 ]
- >>706
FORTRAN 77とは全然違う。 FORTRAN 77は数値計算の世界では現役のまま陳腐化した。 C++0xは現役のまま最先端を走り続け、プログラマを置き去りにし続けてる。
- 711 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:55:37 ]
- 置き去りかよw
- 712 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:04:19 ]
- 道を踏み誤りつつあるマッドサイエンティストみたいなもんだな
- 713 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:04:26 ]
- exportは後々autoみたいに役に立つ日がくるのでほっといてやってください
- 714 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:53:05 ]
- >>710
> C++0xは現役のまま最先端を走り続け 「他言語に出来ることが出来ないので悔しい」 って、入れた機能がほとんどじゃないかい?
- 715 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:53:25 ]
- >710
Fortran2008は結構強烈だぞ?
- 716 名前:デフォルトの名無しさん mailto:age [2008/06/05(木) 23:00:35 ]
- >>714
conceptはHaskellだけじゃない、似てる機能があるのは。 しかもそれは後から分かったことだし。 traitsを置き換えるために生まれた。 move semanticsだってかなり狂ってるしね。 明示的なメモリ管理がある言語で導入するとは。
- 717 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:50:13 ]
- C++ はあまりお作法がない言語だったと思っていたんだが、今は作法が大杉って困る
- 718 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:03:11 ]
- 意味が不明瞭だ
お作法って具体的にはどういうこと?
- 719 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:01:23 ]
- >>713
registerもいつか役に立つ日が来るのでしょうか?
- 720 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:06:07 ]
- >>715
Fortran2008のco-Arrayなんて、 Crayの実装の後追いじゃないですか。 C++0xなんて規格が独走状態ですよ。 一緒にしないでください、失礼です。
- 721 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:45:38 ]
- >>718
俺のエスパー能力を駆使すると、パラダイムをお作法と訳してるんじゃねーの。 禿げ曰く「C++はマルチパラダイム言語だ」と。 パラダイムがないつーか、ひとつに縛らない言語だがな。 パラダイムが何も無いのがすばらしいなら、ifとgotoだけでいいじゃねーかと。
- 722 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:09:13 ]
- 規格を崇拝するお前らに楽しい問題。
class string { public: string(const char*); }; void f(string, string, bool = false); // 1 void f(string, bool = false); // 2 void g() { // どちらの関数が呼ばれるか。 f(“Hello”, “Goodbye”); } 俺はできなかった。 まあ、Overload Resolutionの厳密なルールを暗記してるわけじゃないし。 答え:ttp://blogs.msdn.com/vcblog/archive/2008/06/05/some-c-gotchas.aspx これをもうちょっと人間的にするために、 なにかプログラマが優先順位を指定できるような機能はつくれないのかな。
- 723 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:39:20 ]
- 暗黙的に呼ばれる変換コンストラクタに依存するのはよくないってのは有名な話じゃね。
だれしも一回は引っかかる罠だけどね。
- 724 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:49:35 ]
- その辺いじくるとスマートポインタが軒並みぶっ壊れるから
触れないし触らない方がいい
- 725 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:52:57 ]
- つ f(string("Hello"), string("Goodbye"));
- 726 名前:デフォルトの名無しさん [2008/06/06(金) 18:45:45 ]
- 正直ついていけてません。すみません orz
- 727 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:38:40 ]
- >>719
もしかしたら、&の使用を制限する目的に使えるかもしれない。 例えば、register int foo して func(& foo) したらエラーになるとか。 で、参照渡しができるのなら、ポインタの使用を禁止できることになる。 # 意味が違いすぎるなw
- 728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:37:33 ]
- 俺も最近まで register に & を付けれないと思ってたけど、
C++ では付けれるらしいよ。
- 729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:42:27 ]
- もうラムダ式のキーワードにregister使ったらいいじゃん
どうせ予約語の意味なんてメチャクチャなんだから
- 730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:42:58 ]
- 何度も言うようだが inline がいいと思うお
- 731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:45:01 ]
- 却下されたんだろそれ
- 732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:47:45 ]
- やっぱり解析が凶悪になるからか。
- 733 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:20:43 ]
- >>731
だれか提案したの?
- 734 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:45:36 ]
- ここの誰かが突撃してはいはいワロスワロスされた
- 735 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:57:33 ]
- キチガイ度で言えば現状もどっこいどっこいだと思うだけどな。
- 736 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:32:07 ]
- 最初から頭の使い方が足りなくて狂ってるとしか思えないのと
考えに考えた末に発狂するのとでは筋が違うと思う。
- 737 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:42:24 ]
- オーバーロードは罠が多いから・・
特に特殊化と混じったりするとわけわからん
- 738 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:54:55 ]
- >>734
それどこで? comp.std.c++ と comp.lang.c++ と流し読みしてるけど、とりあえず見覚えが無い。
- 739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:11:13 ]
- inlineも規格化前に勝手な独自拡張でクチャクチャに使われてきた経緯があるから
あまり触れたくないよな
- 740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:41:12 ]
- inlineってどうするの?
m = inline (auto x, auto y) { return x > y ? x : y; } (10, 20); とか?
- 741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:23:44 ]
- 無名関数をinlineと呼ぶのはすげえ違和感がある
- 742 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:35:49 ]
- __lambdaとか_Lambdaでいいからキーワード追加してくれよ。
適当に#defineして使うからさあ
- 743 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:21:55 ]
- 別に _Lambda だろうが [&] だろうがいいけど
とりあえず #include <lambda> をくれ。
- 744 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:07:30 ]
- C++03 の extern inline って C++0x にまだ残ってる?
- 745 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:24:25 ]
- >>722
でどっちが呼ばれるの? ふつーに考えて1でしょ? (ブーッという音が聞こえてるようだ)
- 746 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:31:18 ]
- 失礼、答えつけててくれたんだね。。。
んで、pointer-to-boolなんて知らなかったので、さらに調査中。 昔はほんとにC++好きだったんだけどな。今は規格がぎしぎししてるね。
- 747 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:31:18 ]
- その馬鹿げた変換を何とかするためのnullptrだが
全然何ともなってないといういつものパターンなんだろ
- 748 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:25:05 ]
- もうポインタと整数
整数とbool は互換禁止にすべきだな やりたきゃ明示的にキャストしれと
- 749 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:27:18 ]
- if(smart_ptr)が出来なくなるとブーたれる奴らが強硬に反対するので無理です
- 750 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:17:32 ]
- それは暗黙的変換とは関係なくね?
- 751 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:18:01 ]
- NULL と比較しろよ・・・。
ただ、if (T* p = dynamic_cast<T*>(q)) { ... } がやりたいので 無くなると困る。
- 752 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:47:28 ]
- 「さらば、式の中でも変数を定義できるようにして進ぜよう!」
- 753 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:45:57 ]
- なんでよりカオスな方向に解決するんだよw
- 754 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:27:43 ]
- オカス!?美少女中学生を!?
- 755 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:42:09 ]
- >>751
は?C++でNULLなんて使うなよ。0を使え。
- 756 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:48:56 ]
- これからはnullptrだろ常考
- 757 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:34:52 ]
- nullptrなんて意味ないよなぁ
どうせ変数に入れたら0と区別付かないからやりたい放題なのに
- 758 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:41:26 ]
- >>755
NULL をどう定義するかは処理系定義で、 整数変数に代入しようとした時に警告出してくれるように 定義してくれてるかもしれないというのに 何で 0 なんて使わないといけないのか。
- 759 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:42:55 ]
- >>758
Effective C++ を100回読め
- 760 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:49:27 ]
- NULLを0以外でdefineしてるC++の処理系なんてものがあったとしたら
今すぐ叩き壊した方がいいよ
- 761 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:58:26 ]
- C++では、マクロを使わない事を推奨されている。なのでNULLよりも0を使う方が綺麗。
もちろん、C++はある程度「綺麗」なスタイルを提示しながらも、そうじゃないスタイルを拒絶することはしない。 better Cとして、例外を使わなかったり、templateを使わなかったり、NULLを使っても良い。 ただし、それが推奨されているわけではないことは覚えておくべき。
- 762 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:08:51 ]
- >>760
g++ は __null で定義されているが・・・。
- 763 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:35:32 ]
- NULL 使ってる人は毎回 cstddef あたりを #include してるのか?
- 764 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:00:50 ]
- >>761
enum{NULL = 0};
- 765 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:03:49 ]
- <template T>
T *NULL(){ return 0; }
- 766 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:04:54 ]
- NULLより0ってのは、
Effective C++以前のC++ FAQの時代からの常識。 >>759 情けない…このスレに来るのは十年早いよ。
- 767 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:20:10 ]
- >>763
NULL は結構色んなヘッダファイルで定義されてるので cstddef をインクルードするまでもないことが殆ど。
- 768 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:24:44 ]
- Effective C++ と C++ FAQ の説明内容に違いはあるの?お爺様
- 769 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:28:50 ]
- 相変わらず破綻してる言語だな
- 770 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 07:29:45 ]
- >>765
それだとメンバへのポインタに対応できない気がする。
- 771 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 08:42:09 ]
- 定期的に低レベルの話題で荒れるな
- 772 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 08:50:23 ]
- >>767
実際のコンパイルでエラーになるまで対応するヘッダをインクルードしないってこと? ライブラリの実装に依存してそうでイヤじゃない?
- 773 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 09:37:26 ]
- >>771
低レベルの質問にはよく答えられる低の高くらいのレベルの人が多いんですよ。 おいらも含めて。w
- 774 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 10:47:54 ]
- 低の高っていうと
エントリーモデルの中で頭一つ出た商品みたいで所謂人気商品ってイメージ
- 775 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:16:08 ]
- ある意味正しいな。
今は、プレミアム系商品の人気が高くなっている辺りも含めて。
- 776 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:01:46 ]
- C--
- 777 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:27:35 ]
- >>776
廃れたね。 JVMもCLRもなければ主流になったかも知れないのに。
- 778 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 16:32:19 ]
- >>772
規格でどのヘッダがNULLを定義してるか決めてあるでしょ。
- 779 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:05:26 ]
- >>772の言っているのは、
使うなら、定義されてるヘッダを必ず明示的にインクルードしないと、 コンパイル通っても、実装依存なコードだってことでしょ。 実際多いよね、そういうコードは。 実装上の都合による孫インクルードに依存しているコード。
- 780 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:37:45 ]
- >>779
多いね。 うっかりやることもあるので、ちゃんと警告するシステムが欲しい。 (あるのかな?)
- 781 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:43:48 ]
- NULLはプリプロセッサマクロだから使うなと言う舌の根も乾かぬうちに
#includeの話題で盛り上がってるあたりC++の病巣がよく表れている
- 782 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:45:27 ]
- #include を使わずに済むしかけを入れて欲しかったな>C++0x
- 783 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:50:06 ]
- シンボルだけを読み込む機能は確かに欲しいが、
いまさらC++に入れるくらいなら俺はDを使うわ。
- 784 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:52:09 ]
- 標準ヘッダーファイルの拡張子を無くしたときにやるべきだったな
|

|