- 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/
- 596 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:20:55 ]
- strong typedefってどういう物?
usingとかとは違くて?
- 597 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:41:23 ]
- typedef元とtypedef先が別の型として扱われるというtypedef。
- 598 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:43:10 ]
- C++09 になってんのか、もう。
- 599 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:58:14 ]
- え、まじ?
- 600 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:12:18 ]
- あ、いや、ちゃうわ。ごめん。
- 601 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:19:45 ]
- >>597
それあったらテンプレートがまたワクワクするものになりそうだな
- 602 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:38:47 ]
- 数値型の暗黙の変換はC/C++の型システムの穴だから
strong typedef でまずその穴をふさぎたい
- 603 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:43:14 ]
- そんなもん別に機能にしなくてもこれでいいんじゃないの
class AnotherType : public Type{ private: operator Type(); //実装しない }
- 604 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:44:25 ]
- そんなこともできるのか。それは欲しい
- 605 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:11:50 ]
- intとかでもやりたいんでは
- 606 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 22:50:15 ]
- 実装あるもんなw
- 607 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 23:24:53 ]
- もう#define int nanikaしろよ
- 608 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 00:05:38 ]
- 要するにこういうの作ればいいんだろ?
#include <iostream> #define STRONG_TYPEDEF(base, name) \ template <typename Dummy = void> class name##_ { \ public: \ name##_() { } \ explicit name##_(const base& value) : m_value(value) { } \ base& get() { return m_value; } \ const base& get() const { return m_value; } \ name##_& operator=(const name##_& rhs) { m_value = rhs.m_value; return *this; } \ friend name##_ operator+(const name##_& lhs, const name##_& rhs) { return name##_(lhs.m_value + rhs.m_value); } \ private: \ base m_value; \ }; \ typedef name##_<> name struct TestBase { void show() { std::cout << "Test" << std::endl; } }; STRONG_TYPEDEF(int, Hoge); STRONG_TYPEDEF(TestBase, Test); int main() { Hoge a(1), b; b = Hoge(2); std::cout << (a + b).get() << std::endl; Test t; t.get().show(); }
- 609 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 07:37:07 ]
- 手抜きをするためのものなのに、メンバがコピーされないようじゃ意味がない。
- 610 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 10:29:55 ]
- mailing 2008-05 きてるお
- 611 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:09:49 ]
- ^ω^
- 612 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:32:56 ]
- >>610
乙
- 613 名前:デフォルトの名無しさん mailto:age [2008/05/21(水) 12:37:34 ]
- コンテナとかSTLがみんなconcept化されてる!
- 614 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:42:31 ]
- ドラフトは N2606
- 615 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:48:01 ]
- www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2601.html
がスゲイ
- 616 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:04:02 ]
- C99と同じ感じになったりしないの?
現行のC++から、この仕様のC++にキレイに置き換わってしまう? また、複雑難解怪奇な文法を覚え直さなければいけないの?
- 617 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:49:37 ]
- >>616
GCCだけでなくVC++も実装してくると思う、現にTR1も対応しているし。 C99よりは広まると思う。 文法はどうしようもないな。現在でも複雑怪奇なんだから 今さら少しくらい増えたってどうってことないって構えをしたほうがいいかも。
- 618 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:50:26 ]
- better C++03 として使う人が多そうな予感。
auto とかは使うけど・・・って感じ。
- 619 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:38:48 ]
- ぶっちゃけC++が廃れる要因になるだけな気がしないでもない
- 620 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:49:42 ]
- 化粧を覚えたてでちょっと厚塗りしてみた美少女中学生のような感じだな
化粧のナイステクを見つけるのが先かこっちが見慣れるのが先かというところか
- 621 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:21:56 ]
- 今はネイティブで代わりがないから C++ 一択だけど、ObjCを綺麗にしたようなクラスベースの
言語があれば、もう C++ にこだわる気になれないなぁ。うんざりする
- 622 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:36:41 ]
- Cに速度的な最適化を期待したのが間違いだったんだ。
やるならfortranを++すれば良かったのに。
- 623 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:38:00 ]
- >>622
そこで Fortress ですよ
- 624 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:35:21 ]
- >>621
だからD言語を使えと(ry
- 625 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:36:59 ]
- >>623
あれは数値計算用途以外では使いたい文法でもないけど・・・ それ以前に、なかなか開発進んでなくね?
- 626 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:40:30 ]
- >624
GC がいらない
- 627 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:09:24 ]
- >>616
(ほぼ)今のままのコードで動く。
- 628 名前:デフォルトの名無しさん mailto:age [2008/05/21(水) 23:10:26 ]
- >>626
GCありというか明示的メモリ管理なしのC++ってもの使ってみたい。 DとかJavaじゃなくて、まっとうなC++で。
- 629 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:25:00 ]
- >628
だが、リソース管理は結局自前だろ ファイナライザは入れないんだよな
- 630 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:45:13 ]
- >>618
現行でC++03としても使えてない奴の方が多いからな その辺はしゃーない
- 631 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:04:12 ]
- サブセットでヘッダの要らない仕様を作ってくれないかな。
どうせ、プリコンパイルヘッダみたいな事やるんだから、 .cppをプリコンパイルして参照解決したっていいじゃん。
- 632 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:09:22 ]
- そうやってサブセットのスーパーセットを考えてるうちに C# になってしまいました
- 633 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:12:52 ]
- >>631
モジュールシステムを設計しなおすことになると思う
- 634 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:49:18 ]
- 仕様を作るのはいいけどさ、
とりあえずその前にほとんどのコンパイラベンダに言いたいんだが export を実装してくれよ! Comeau 以外どこか実装してんの?
- 635 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:51:43 ]
- 実装が大変な割に大したメリットがないからじゃないの
- 636 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:54:50 ]
- exportの実装がめんどうになった時点で分割コンパイルなんてあきらめればよかったのだ
- 637 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:59:03 ]
- extern inline なんかどこも完全実装できてないしな
Comeauでさえ
- 638 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:51:17 ]
- >>615
提案しているのが Lawrence Crowl だし,ほんの一瞬とはいえ 本気にして「なんだ!?とち狂ったのか!?」とか思った俺涙目www
- 639 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 05:58:24 ]
- >>638
w ま、いつか入るかもな。競合は大丈夫そうだし。 16進浮動小数点数リテラルとか知名度低いのもあるし、こっそり紛れてても誰も騒がないでしょw
- 640 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:12:45 ]
- ASCII外の字をプログラム本文に持ち込むことをあっちの国の人らが許すはずがない
- 641 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:20:22 ]
- コメント文字列をプログラム本文とみなすかどうかだが
普通にやってるとチェコ語だかでパース失敗しなかったか?
- 642 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:26:27 ]
- なんだそりゃ。
まさかチェコ語は、スラッシュやアスタリスクにまで独自の文字を割り当てているのか?
- 643 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:05:42 ]
- チェコ語ということはutf-8か?
-Ku は当然付けてるよね。
- 644 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:06:45 ]
- コメントに??付けるだけでおかしくなります
- 645 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:02:47 ]
- もう APL になったつもりで変な字いっぱい使おうぜ
- 646 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:46:19 ]
- トリグラフも迂闊に追加できないこんな世の中じゃ。
- 647 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:01:50 ]
- つまりクアッドグラフが求められる時代になったということですね
- 648 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:42:00 ]
- concept 使った for_each がこう提案されてる
auto がこんな使い方できるんだ template<InputIterator Iter, Callable<auto, Iter::reference> Function> Function for_each(Iter first , Iter last , Function f ); 役立たずだった auto が大人気だ
- 649 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:46:41 ]
- 大人気で広まる
↓ 恐ろしい副作用が見つかる ↓ カオス の黄金パターンですね、わかります
- 650 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:04:34 ]
- >>639
十六進浮動小数点数は、C99由来だから知名度低くても余裕で入るだろ、たぶん。
- 651 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:17:23 ]
- concept のようなメタタイプを持つ言語がほかにあるんでしょうか?
Haskellのほかに 静的型付言語で
- 652 名前:デフォルトの名無しさん mailto:age [2008/05/24(土) 03:58:02 ]
- >>651
conceptの型理論を書いた人たちがGってのを作ったよ。 他にはない。concept_mapみたいなglueがあるのは。
- 653 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:43:16 ]
- conceptの一番の利点はコンパイル時のエラーメッセージ
- 654 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:39:46 ]
- >>653
concept_mapを理解してないね。
- 655 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:41:52 ]
- 今度はコンセプトメタプログラミングの時代ですか
- 656 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:44:38 ]
- 自然な流れじゃないかな
ジェネリックス系としては
- 657 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:23:27 ]
- そしてC++1xでは
コンセプトの型を規定するスーパーコンセプトが目玉機能になるんですね わかりました
- 658 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:32:03 ]
- 滅多metaな超言語それがC++1x
- 659 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:10:08 ]
- C++ 捨てて別言語使った方がいいんじゃね?
と、マジで思う今日このごろ
- 660 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:11:07 ]
- そんなあなたにC++0x。 もはや別言語だから。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:12:28 ]
- まともなC++0x処理系ができるまでは暫く離れるのもいいだろうな
- 662 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:18:31 ]
- C++3xで会いましょう
- 663 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:09:52 ]
- namespaceスコープでアクセス制御が出来たらいいと思わね?
namespace hoge { private: void priv(); public: void pub() { priv(); } } hoge::priv(); // error
- 664 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:20:34 ]
- >>663
入れ子にした無名 namespace で代用できない?
- 665 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:44:37 ]
- >>657
concept はコンセプトをパラメータにとることが出来るのでメタコンセプトは必要ないと思う
- 666 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:46:20 ]
- 無名にしなくても、boostの
namespace detail { はそういうことやってるんだわな。 >>663はスロット単位でやりたいんだろうけど。
- 667 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:02:23 ]
- >>654
「自尊心はあっても自信が無い」から、衝動で突っ込むけど説明添える勇気は無いんですね、わかります。
- 668 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:51:48 ]
- 整数のイタレータのサンプルコード見ればいいんじゃない? > concept_map
- 669 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:01:51 ]
- autoとcenceptでC++も分かりやすい言語になるかなあ。
- 670 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:04:22 ]
- ならんね
- 671 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:13:27 ]
- そもそも、現行C++も分かりやすい言語にするために
突っ走ってきたという面が多かったと思う、D&E読んだ直後の感想。 しかし、現実はと言うと……。 0xも同じ道を辿るに違いない。
- 672 名前:デフォルトの名無しさん mailto:age [2008/05/24(土) 18:17:27 ]
- >>671
> 分かりやすい言語にするために 皮肉とかじゃなく、そうは思えません。 やはりCとの互換性を抑えた上での、実行効率をメインに考えてきたと思います。
- 673 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:21:59 ]
- >>665
kwsk
- 674 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:42:42 ]
- Perl6 の二の舞になる、なんてことはないよな。あはは
- 675 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:42:58 ]
- >>673
やっぱ出来ねえや 勘違い
- 676 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:09:08 ]
- 最近は使う人にやさしくなってきてるよね
つらいのはコンパイラベンダやライブラリベンダ
- 677 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:21:53 ]
- ここまで巨大仕様になるともう新規参入とか不可能だよな
- 678 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:48:19 ]
- GCCからforkすればいい。
- 679 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:55:43 ]
- 現行の auto って型名のかわりに
auto i = v.begin(); みたいな書き方をする以外に使い方ありますか?
- 680 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:07:49 ]
- 型名の現れうる場所全てに現れて
福音と混沌をもたらします
- 681 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:05:28 ]
- >648
- 682 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:13:09 ]
- 自動変数の宣言
- 683 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:13:47 ]
- 使うだけの人間としては規格の議論より処理系がいつできるかの方に興味がある
- 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++は生き残るわけですね分かります
|

|