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/
809 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:43:26 ] 地味だけどlong longは間違いなくとり上げられる。
810 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:48:09 ] >>799 けどC++/CLI蹴られたし、ISO C++からは離れるかもね。
811 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:53:26 ] >>809 型の種類と値の範囲の表をちょっと増やすだけだもんなw 個人的にはUTF文字列をまともに扱って欲しい
812 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:58:03 ] 美少女中学生にしてみれば下着の種類が増えるだけだからな 外に出るときの見た目は変わらない
813 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:48:21 ] 対応したコンパイラって、すぐ出るのかな?
814 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:49:30 ] gccとか既に一部対応してるから、規格になることには全部対応してるんじゃね?
815 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:53:42 ] ふむ。 gccぶち込んでみるかな。
816 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:54:49 ] 139 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/11(水) 20:50:38 どうでも良いが個人的にまつもと氏に0xに改善されても尚C++が問題外かどうかを訊ねたい。
817 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:31:56 ] >>816 もっとだめと言うに100万ペリカ ところで初心者向けと言えば、やっぱりテンプレート絡みの エラーメッセージがまともになるという1点においてコンセプトが 一番簡単にアピールできる機能だと思う。 コンセプト自体は、入門書で取り上げられるような内容ではないだろうけど。
818 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 08:16:26 ] 禿は0xむけに第4版出すんだろうか
819 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:28:13 ] 第4版よりD&Eの第2版がほしい
820 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:25:24 ] D&Eの続編書いて欲しいな。別の本で。 >>693 のGregorとか。 一人で大幅な改訂してる暇はたぶんないだろ。 WG21 papers、かなり名前出てくてるからな。
821 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:26:54 ] Wikiを読んでいると、「うざくなって?」って、思えてきたのですが、 そんなことない?
822 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:32:27 ] 日本語でおk
823 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:20:39 ] 美少女中学生が携帯で書き込んでいるようだな
824 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:13:20 ] >>823 ぼっぼくと付き合ってくださいっ!
825 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:01:42 ] >>824 文脈的には>>821 が美少女中学生だと思う TC++PLやD&Eの続編って書く予定ないのかな と思って禿のページ見に行ったら なんかいまC++の入門書書いてるみたいだね
826 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:30:15 ] VCって、どこまで対応させるのかな〜?
827 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:21:40 ] >>825 おお、それは期待したい
828 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:21:56 ] テンプレートだって未だにまともになってないのに そこにコンセプトなんか追加したらどうなることやら
829 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:22:58 ] 「もう美少女中学生とかどうでもいいだろC++0xの話をしろよ」と書き込もうとしたけどやめた。
830 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:24:03 ] やめろよ
831 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:31:25 ] 「もう美少女中学生とかどうでもいいだろC++0xの話をしろよ」っていう書き込みを見て「やめろよ」と書き込もうとしたけどやめた。
832 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:33:18 ] C++0xは美少女中学生萌え言語ですよ?
833 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:35:17 ] C++0xと美少女中学生には全く関連性がありません! 両者が結びついているかのような書き込みは控えてください!迷惑です! ここはC++0xのスレッドです!C++0xの話をしてください! 美少女中学生の話がしたければどこかよそでやってください!
834 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:39:31 ] えぇーまじでぇー
835 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:55:11 ] C++0xなら美少女中学生なんてコンパイル時にゲットできる
836 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:56:41 ] NGワード : 少女
837 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:57:56 ] >>835 コンパイルに何年かかるんだ?
838 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:58:14 ] >>828 コンセプトが追加されてはじめてまともになるんじゃないか。何を言ってるんだ
839 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:37:42 ] >>838 紫の上のコンパイルはたった4年です。
840 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:31:21 ] >>784 拡張子をなくした理由ってなんだろ?
841 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:32:15 ] >>792 いつまで入門者でいるつもりなのかなー
842 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:38:19 ] >>840 ヘッダはファイルである必要は無い とか言えるようにするため。
843 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:34:50 ] .hまで含めて名前です。とかでもよかったじゃん。
844 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:36:53 ] 互換性を失う変更を導入するための苦肉の策だったのだと思う
845 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:37:26 ] 名前空間の無い時代に #include <iostream.h> int main() { cout << "hoge" << endl; return 0; } とか書かれたプログラムが大量にあってだな・・・。 それとの互換性を考えると名前を変えざるを
846 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:06:58 ] ほんっとしがらみいっぱい過ぎだよな。
847 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:11:18 ] 互換性無視してしがらみ全部捨てたC++欲しいよな。 特に暗黙の型変換辺り。 ちなみにDなら不要だよ。
848 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:12:46 ] Dは自分でしがらみ作りまくったりしてるからな・・・ 時には思い切って捨てたりしてるけど(信者を)それが逆にしがらみになってる。
849 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:25:48 ] >>847 仕様だけでも作ってくれ
850 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:28:12 ] >>847 暗黙関係はトラブルの元だからどうにかしたいな。暗黙関係は警告を出すオプションが欲しい。 デフォルトのコピーコンストラクタが作成できませんなんて余計な警告はあるのになんでないんだ?>VC8
851 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:52:11 ] 明示的なメモリ管理ができないC++とか その場合でもmove semanticsは面白いこと出来ると思う。
852 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:27:37 ] 暗黙の型変換を全部禁止したらどうなるのかな double d = 1; とか Base *b = new Derived(); とかが全部エラーになるんだよな
853 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:29:42 ] アップキャストは安全なキャストだから禁止する必要もあるまい。
854 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:33:28 ] 安全だろうと何だろうと、何かの暗黙の変換を認めたら あれも認めろこれも認めろと言うキチガイが出てくるので全て禁止です そういう思想で作られてる言語ねえのかな
855 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:42:53 ] OCaml は結構型に厳しかったと思う
856 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:20:30 ] double d = 1; は実質 double d( 1 ); と同じだから明示的な変換を表しているんじゃないか?
857 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:22:16 ] 暗黙的なコピーコンストラクタの実行をやめてくれって話じゃなかったのか
858 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:29:26 ] explicit でおkだっしょ
859 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:41:09 ] デフォルトのコピーコンストラクタはどうかなあ。
860 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:42:31 ] ああ、コピーコンストラクタの話か。 0x 的には = delete してくれってことじゃないのかな。
861 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:44:38 ] 組み込み型の暗黙の型変換が結構うざいんだよな。 特にポインタ、文字型、論理型が整数様型と絡むと。
862 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:46:08 ] explicit をデフォルトにしてほしかった。
863 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:47:36 ] schemeみたいに簡単に方言作れるkitがあればいいのにな。
864 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:55:09 ] >>862 それはよく思う。 でも、今更変えらんないんだろうなあ。
865 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:57:43 ] Javaはreflection APIがあるから、 言語拡張&コンパイラ実装の研究がどんどん進んでいるね。
866 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:38:08 ] セックスプリプリシット?
867 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:46:35 ] 虚しいオッサンの虚しい書き込みが続いております
868 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:47:36 ] >>865 OpenC++の中の人も今はOpenJavaやってるね。
869 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:06:45 ] クラスの内部ポインタを交換するような例外安全な swap を書くとき それを std 空間に template <> swap( .. ) と逐一定義しないと std::swap から呼ばれない。 理屈はわかるんですけど、なんとかならないですかね。 一々 namespace std { template <> swap( うんたらかんたらと書くのが面倒くさいです。
870 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:50:04 ] クラステンプレートならどうにもならない
871 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:24:39 ] 自分の場合は using std::swap してから swap() を呼び出しているので クラスと同じ名前空間に swap() を定義している。
872 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:32 ] swapなんか使わない設計にしなさい
873 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:08:06 ] そうですね。 これからは右辺値参照の時代ですもんね。
874 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:41:59 ] swapを使おうとする前に、一度立ち止まって 自分が値をあべこべに格納していないか考え直しなさい Bjarne Stroustrup
875 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:38:14 ] >>869 恐らくどうしようもないかと思います. さらに, std 名前空間以外の名前空間で定義された関数テンプレート (クラステンプレート内で定義されてた非テンプレート関数もこれに準じますが) において, unqualified call で swap が呼ばれる場合にも対応しようとすると クラスと同じ名前空間にも swap を定義しなければいけなくなります. 現時点において,規格として std 名前空間で定義された関数テンプレート内で >>871 さんの提言する実装 (using std::swap;) が行われている保証が無いことが 本質的な問題だと思います.ただ,ここに文句を言っても現時点での問題は 何も解決されませんので,とりあえずの次善策として, std::swap の特殊化と associated namespace に swap を定義することの両方を実施することを 個人的には勧めておきます.「面倒くさい」という問題の解決にまったくなっていませんが. さらに >>870 さんの言うように,クラステンプレートの場合には 根本的な解決策はないです. >>873 move できるかどうかは, swap できるかどうかとは本質的には独立で, 特に move が可能になるためには,オブジェクトに valid resourceless state が 存在することが必要になり,これはやや強い制限だと思いますから, move はできないけれども swap はできるという状況は比較的容易に起こりえると思います. なので, move さえあれば良いということは必ずしも言えないかと思います.
876 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:51:43 ] concept HasSwapFunction<typename T> { T& swap(T&) throw (); } template <typename T> requires HasSwapFunction<T> inline void swap(T& x, T& y) throw () { x.swap(y); } template <typename T> inline void swap(T& x, T& y) throw () { std::swap(x, y); } ↑ こういう感じのってダメなの?よくわからんけど…
877 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:00:17 ] >>876 template<HasSwapFunction T> concept_map Swappable<T> { void swap(T &x, T &y){ x.swap(y); } } 多分,こんな感じで concept_map で差異を吸収したほうが楽なのではないかと.
878 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:03:49 ] 交換も、コピーコンストラクタや代入演算子と同じように扱えばシンプルになると思うんだけど ・デフォルトはクラスが定義するswapを実行する ・swapが実装されていなければ、言語側で一時オブジェクトを作り処理する とできないのかな 実装で埋めようとして複雑になっている印象がありますが
879 名前:デフォルトの名無しさん [2008/06/18(水) 04:23:08 ] Namespace issue with specialized swap groups.google.ca/group/comp.lang.c++.moderated/browse_thread/thread/b396fedad7dcdc81
880 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:07:18 ] for文の改良ってしないの?
881 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:18:58 ] foreachってC++0xになかったっけ?
882 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:00:02 ] 入ったよ。 for (int &entry: aContainer) { ... } Javaのクロージャを引数に取る拡張に比べるとつまらない。>>48 C++的には最悪のセンスだと思う。
883 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:41:05 ] Javaから構文パクるなんてC++も地に墜ちたもんだな
884 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:58:22 ] まあでもC++にeachとかinとかのキーワードを入れるのも有り得ないだろうし、 これくらいしか書きようがないと思う。
885 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:00:07 ] ところでこのループ変数は参照なの? 参照が指す先変えながらグルグル回るの? キモッ
886 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:21:35 ] 別にキモくはないだろ。 従来の、for無いのスコープで参照変数を宣言してるようなもの。
887 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:29:26 ] for (int &&entry: aContainer) { ... } はあり?
888 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:55:18 ] ぅん・・・
889 名前:1/2 mailto:sage [2008/06/18(水) 19:11:15 ] 昔々、Sunにとある厨が居た。 彼はC言語の研修でポインターでつまづくような無能で、無論C++など理解出来なかった。 プログラマーとしては全く使い物にならんということでネットワークエンジニアとして使われていた。当然役には立たなかったが、サーバー運びや配線や小間使いぐらいは出来た。 この世にポインターがあるから自分がそんな境遇に陥ったのだと不満を募らせた彼はポインターを憎悪し、ポインターの無い言語があればいいのに、と夢想するようになった。 彼はその夢想言語をJAVAと名付け陳腐な企画書を出したが、すべて無視された。 そんなある日、どうせ役には立たないんだからと、しつこいNetscape社の営業を追い払う仕事を任された。もちろん権限は一切なく、ただNetscape社の営業の話相手をし、すべてを断るだけの仕事だ。 彼は毎日のようにNetscape社の営業と無駄話をした。彼にとってそれは、愚痴や不平不満をこぼす絶好の機会だった。 Netscape社の営業は当然のように彼に同意した。彼の境遇に同情し、彼の才能を認め、褒め称えた。 そして誰も耳を傾けなかった夢想言語JAVAの話になるとNetscape社の営業は強い興味を持ち、ブラウザーに搭載したいと言い出した。当時のNetscape社は、動きのあるページを作る案を求めていた。 夢想言語JAVAが現実のものになる。彼は天にも昇る気持ちになり、全面的に協力を申し出た。が、やはり何の役にも立たなかった。すべての設計、策定、実装はNetscape社によって行われた。 Netscape社は、夢想言語JAVAを「何処でも全く同じに動く言語」としてブラウザーに搭載しようとしたのだ。 これを聞いて驚いたのはSunの役員達だ。直ちにNetscape社と交渉し、JAVAはそもそもSunのものであることを主張し始めた。 交渉の結果夢想言語JAVAの最初の実装はJavaScriptと改名することになり、SunのJAVAとは独立したNetscape社の言語となった。
890 名前:1/2 mailto:sage [2008/06/18(水) 19:11:45 ] Sunは直ちに「何処でも全く同じに動く言語」の現実性を調査し、仮想マシンを使うことで可能であることを検証した。 また夢想言語JAVAの詳細を厨に尋ね、規格をまとめ……ようとした。というのは、厨の頭の中には「ポインターを使わない」の他には支離滅裂な妄想以外何も無かったからだ。 役に立たない彼を「夢想言語JAVAを広める為の広報」に追い出し、夢想言語JAVAではなく現実的なJAVA言語の設計が行われた。 だが現実的設計にはいろいろと難があった。その度に開発部は厨に尋ね、その意向を可能な限り反映する努力を行った。しかし無能な厨の意向を反映することは困難を極めた。 その中で最も大きな障害となったのが、多重継承の禁止である。 未だにSunは公式に認めていないが、JAVAが多重継承を禁止する決断をさせたのは、実はMicrosoftの寄与するところが大きかった。 Microsoftは既にMFCとCOMによって多重継承が抱える問題を解決していたからである。 その後も厨は(何度出入り禁止を喰らっても)設計に口を出し、そして開発部はその意向を可能な限り反映する努力を行ない続けた。 特に厨が主張するコーディング規約は支離滅裂を極め、ゴスリンは「それまでに書かれたコードを書き直す量が最も少なくなるコーディング規約」をまとめる必要に迫られた。 この時にまとめられた何の意味も無いコーディング規約は後に、それを知らなかった企画部によって改めてまとめられJAVAの標準のコーディング規約として発表された。 ゴスリンはこの時の心境を「JAVAが最高だと生涯言い張り続ける覚悟を決めた」と述懐している。 厨は熱心に広報活動を行っていたが、役に立ったのは最初だけだった。すごい言語が出来る、ということを印象付けた後は、何の役にも立たなかった。 開発には近寄ることすら許されず、広報からは役立たずの烙印を押された。彼は再びネットワークエンジニアとして保守管理部に戻った。 今では彼は毎日何百ものLEDを見張って、消えたらそれに対応するハードディスクドライブを交換する仕事をしていると言われている。名前は記録されていない。
891 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:12:40 ] ついに参照の指し変えが認められてしまったのか…
892 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:18:37 ] >>875 valid resourceless state てなーに?
893 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:24:14 ] Java の参照型はまさにポインタだろうが・・・。
894 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:26:03 ] NullPointerExceptionがあるしな
895 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:26:50 ] Javaの参照型はインクリメントできる?
896 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:28:34 ] >>893-895 ネタにマジレスw
897 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:29:56 ] マジレスもできない奴は板を替えたほうがいい
898 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:34 ] ネタにマジレスするのが最近のトレンドなんだぜ
899 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:37:47 ] ネタに、というよりホラにマジレスだな
900 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:38:24 ] >>892 d = std::move(s); という構文が実行された直後の s の状態が明確に定義されていなければならないですが, この状態は有効な状態でなければならず,かつ, いかなるリソースの所有権も保持していないような状態でなければならないです. これを valid resourceless state と表現していました. 有効な状態 (valid) でなければならないというのは, move された直後の s に対しての操作が well-defined でなければならないという要請を表現したものです. 少なくとも最低限かつ自明の要求として,いかなるタイミングでも デストラクタの発動は有効に機能しなければならない,という意味で 有効な状態でなければならないことは分かるかと思います. また, move は no-fail,つまり失敗しない操作であることが要求されます. ここで仮に move 直後の s が何らかのリソースの所有権を保持した状態であるとすると s が保持するリソースの確保において失敗が発生する可能性があり, move が no-fail であるという要求と矛盾します. 従って, s はいかなるリソースの所有権も保持していない状態 (resourceless) である必要が出てきます. 一般に,オブジェクトが常に何らかのリソースを確保している状態であることが自然な場合, このようなオブジェクトに move の操作が行えることを要求すると, オブジェクトの構築は完了しているがリソースの確保が完了していない オブジェクトの状態を有効な状態としてユーザに暴露しなければならなくなり, RAII の観点から見てやや大きな弱点を生じるように思います.