- 1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:11:32]
- C++ のジェネリックプログラミングの話をしましょう。
以下のスレッドを統合するスレです。 STLスレッド Part1 pc.2ch.net/tech/kako/1004/10042/1004287394.html Part2 pc3.2ch.net/tech/kako/1026/10267/1026793823.html 【C++】Boost使い集まれ! pc3.2ch.net/test/read.cgi/tech/1033830935/ (html化待ち?) Generic Programming with C++ Template pc.2ch.net/tech/kako/1008/10085/1008593126.html 【C++】template 統合スレ -- STL/Boost/Loki, etc. pc2.2ch.net/tech/kako/1037/10377/1037795348.html 【C++】template 統合スレ -- Part2 pc2.2ch.net/test/read.cgi/tech/1047978546/ (html化待ち) 【C++】template 統合スレ -- Part3 pc5.2ch.net/test/read.cgi/tech/1066493064/ (html化待ち) 【C++】template 統合スレ -- Part4 pc5.2ch.net/test/read.cgi/tech/1083550483/ (html化待ち) 【C++】template 統合スレ -- Part5 pc5.2ch.net/test/read.cgi/tech/1091522597/ 関連スレ、その他リンクは >>2-5 あたりに。
- 807 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:38:01 ]
- enable_ifが何をするもんなのか、未だにわかんねえ。
てか、何年英語の勉強してもboostのドキュメントさえ読めない俺ってすげえよ。 よっぽど英語の才能が無いんだな。
- 808 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:41:04 ]
- テメェは自己紹介がしたいだけだろ
分からねぇんだったらイチイチ出てくんな
- 809 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:50:40 ]
- >>807
SFINAEによるオーバーロードセットのコントロールを簡単に 行うためのユーティリティ。 英語分からなくてもC++分かるんならひたすらソース詠めば 何となく見えてくる、かもよ。
- 810 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:53:46 ]
- >>808
なにキレてんのキミ。 相手以上の駄レス書いてたら意味無いのに。
- 811 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:59:07 ]
- 駄レスとかいってたら、ほとんどがそうだろw
- 812 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:00:10 ]
- ほとんどがそうならなおのこと
突然特定のレスにキレる理由が無いよ。
- 813 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:03:27 ]
- 自己顕示欲丸出しの厨房がウザイだけだろ
まあ、どこにでもいるからいちいちキレるのもどうかと思うが
- 814 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:16:33 ]
- キレて説教するほうがよっぽど自己顕示欲激しいと思う。
世に言う自爆ですな。アホくさ。
- 815 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:17:52 ]
- www.boost.org/libs/utility/enable_if.html
ここの「1.2 Background」は、何が問題だって言ってるんですか?
- 816 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:20:01 ]
- 説教がどう自己顕示欲につながるんだ??
- 817 名前:デフォルトの名無しさん [2005/08/07(日) 23:22:14 ]
- >>814
ワロス
- 818 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:29:27 ]
- >>816
キレるたびにいちいちスレ違いの書き込みするような奴が 自己顕示欲薄いって言い張る気?
- 819 名前:デフォルトの名無しさん [2005/08/07(日) 23:30:34 ]
- enable_ifがわからんってののどこが自己顕示欲に繋がるのかもわからんけどな
- 820 名前:デフォルトの名無しさん [2005/08/07(日) 23:30:49 ]
- >>818
藻前もキレてるじゃん あと煽り耐性なさ過ぎ いい加減スルーしろよ
- 821 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:31:47 ]
- >>815
いや,そこの部分は別に何かが問題だなんて書いてないです. 単にSFINAEというのがどう機能するか(そしてなぜそのような機能が必要なのか) を説明しているだけです.
- 822 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:32:15 ]
- 816が煽りには見えないけどなあ。
普通にズレてるだけで。
- 823 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:32:55 ]
- >>815
あっと,「もしSFINAEがなければこういうことが問題だよね」というのは書いてますけれど.
- 824 名前:デフォルトの名無しさん [2005/08/07(日) 23:35:03 ]
- >>822
分かったからもう出てくんな
- 825 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:40:11 ]
- 本日の推奨NG
「。」「顕示」「煽り」「キレ」 すっきりして(・∀・)イイ!!
- 826 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 02:07:36 ]
- expressional template
VC.net2003だと、ちょっと複雑な式を書いただけで コンパイル通らない。 そういうものなの? gccなら通るのかな
- 827 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 02:12:44 ]
- >>826 その「ちょっと複雑な式」とやらを晒すとレスが付くかもしれない。
- 828 名前:デフォルトの名無しさん [2005/08/08(月) 03:35:21 ]
- >>826
現存する如何なるコンパイラでも通らない程複雑(広義の)なコードに問題ありに100円。
- 829 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 04:40:19 ]
- ネストが17超えるとか?
- 830 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 15:16:31 ]
- いろんな要素が混じってるので必ずしもexpressional templateが
原因でないのかもしれないけど boost::numeric::ublas::matrix & A(){return A_ } boost::numeric::ublas::matrix & B(){return B_ } B() = prod( A(), A())*3 + B() + .... こんな感じかな.全部はさらせないのですまそ
- 831 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 01:41:27 ]
- >>830
エラー貼ったがいいよ もし膨大なら 再現するコンパイル可能な最小のコードを貼って
- 832 名前:831 mailto:sage [2005/08/09(火) 01:45:25 ]
- >コンパイル可能な
おっとコンパイルは通らないのか >あなたがコンパイル通らないことを理不尽に思う に訂正 ようするにテストする側の身になってコードを 貼ってください
- 833 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 11:45:51 ]
- >>830
>こんな感じかな.全部はさらせないのですまそ じゃあ、他の人にエラーの原因を調べてもらうのも諦める事ですな。 証拠不十分なまま、証言台に立つような物ですぞ。
- 834 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 08:39:28 ]
- だれもいない
- 835 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:28:20 ]
- ホントにだれもいないのかよ
- 836 名前:デフォルトの名無しさん [2005/08/20(土) 20:39:26 ]
- いねーよ
- 837 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:40:28 ]
- 質問やら話題があれば人は自然と集まってくる。
- 838 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:52:57 ]
- おまえら
”てんぷれーと”にだまされてないか? ”しーぷらぷらのてんぷれーと”って結局あれだよ。 中途半端。 そう中途半端。 LISPに比べたら。 全然読み易くならない。 いろんな括弧であふれてLISPの方がまだサルのように読みやすい。 まあここにタムロしてるおまえらの言い分は判ってるよ こうだろ、静的カタカタ型が重要なんです! LISPじゃすぴーどでないよプププ とかな。 ばーか。 カタなんかより柔軟性なんだよこのご時世はよ カタカタうるせーのなんのって、笑うわ。 C++考えた奴みたいにハゲろ 全員
- 839 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:59:39 ]
- 確かに、「ネイティブコード吐く言語じゃないと速度が」
とか必死に言ってる奴に優秀なプログラマはいないな。
- 840 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:10:42 ]
- しーぷらぷらの処理系。
てんぷれーとバグだらけ。 笑うわ。 いったい何年てんぷれーとやってんだよ おまえらがべんだーの修正待つあいだに おれLISPで新しいマクロどっさり作る 生産性バカたけぇーわLISPはよ LISPはカタないからすぴーどでないよプププて、 そりゃ頭がかてえ証拠だな。 そんな奴は引退したほーがいいんじゃねーかなあ LISPにカタないなら組み込めよ、ハゲども ぶーとすとらっぷとか考えろよ わかるか?ぶーとすとらっぷって。 しーぷらぷらにはそんながいねんはないかもなあ。 最適化なんかやりやすいなーすいすいいけるぜ こんすの海の中にいると不満なんてすぐ解消する それがLISP。 まあ頭のかたいカタカタ野郎は やっぱりC++考えた奴みたいにハゲろ 全員
- 841 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:16:51 ]
- >>839よりは優秀だけどね。
- 842 名前:マイク ◆yrBrqfF1Ew mailto:sage [2005/08/20(土) 21:31:32 ]
- C++をしーぷらぷらなんて言うのは無能。
- 843 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:59:52 ]
- C++でLisp系の俺言語&処理系作るのが最近の俺の趣味なんだが、
なんかこいつの仲間と思われたくないな、恥ずかしくて。
- 844 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 22:59:08 ]
- >>842
シープラスプラス? それともシーたすたす?
- 845 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:33:28 ]
- しーいんくりめんと
- 846 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:43:58 ]
- C++
後置ということは、まだ本当のC++にはであてないわけだ
- 847 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:45:24 ]
- C++には出会えている
++Cに出会えてないだけ
- 848 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 00:37:45 ]
- 838は、C++のテンプレートが読みにくく、
コンパイラのバグのことも分かっていて、 C++作った人物についても詳しいようだな
- 849 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 00:48:03 ]
- Schemeの純粋指向にはあこがれるけど、Lispはどうでもいいや。
継続は面白いな。 >LISPはカタないからすぴーどでないよプププて、 型が無いと遅くなるつうのは初耳ですが、どこの情報?
- 850 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 01:06:13 ]
- >>849
VBのバリアント型みたくデータ側に型情報があるから オブジェクトを参照するたびに動的な判定が毎回必要ってことだよ。 型判定に値の取り出しとか最低でもCの3倍以上のコストが掛かる。 Rubyが遅いのもこれがかなり影響してる。
- 851 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 01:09:17 ]
- でも日本語は不自由なようだ。
- 852 名前:851 mailto:sage [2005/08/21(日) 01:09:45 ]
- >>838
- 853 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 01:25:23 ]
- > オブジェクトを参照するたびに動的な判定が毎回必要ってことだよ。
随分ダサい実装ですね。
- 854 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 01:41:07 ]
- そのダサイ実装を越えたところに桃源郷が
- 855 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 01:41:43 ]
- ももげんごう?
- 856 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 12:12:15 ]
- ももげんごう(←なか変換できない)
- 857 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 14:42:55 ]
- 桃源郷=Xanadu キサナドゥ
- 858 名前:デフォルトの名無しさん mailto:sage [2005/08/22(月) 00:38:44 ]
- >>850
正直、有名なコンパイラならそんなださい実装は少ないよ。 Common Lispには型指定の構文があるくらいだし。
- 859 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 09:18:30 ]
- 数値計算したい人は
速度気にしないならlistでなくてMatlab使う
- 860 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 15:06:35 ]
- >>858
CLOS基地外氏ね スレ違いだし
- 861 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 15:34:43 ]
- だれもいないからとか言うから
- 862 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 16:29:46 ]
- 人稲杉なので、チラシの裏
boost::bind は、bind( f, _1, _2, a, b, _1 ) を行うことで、 func::return_type ( A1 & a1, A2 & a2 ) というファンクタを返すけど、 この _1 や _2 を、_decimal や、_text、_float のような書式指定プレイスホルダに 置き換えて、以下のようにすれば、タイプセーフな printf が出来るなと 考えたことがあった。 function< void( int ) > f = format( cout, "a = ", _hex, endl ); // ↑ cout << "a=" << %x << endl; と同じ事を行うファンクタを返す。 f( 10 ); // cout << "a=" << hex << 10 << endl; f("aaa"); // コンパイルエラー 上の形とは違うけどその思想に基づいて実際に作ってみたことがある。 でも結局実用では (w)sprintf しか使わなかった。勉強にはなったけどね。 template プログラミングは楽しいけど、冷静なるとしなくていいことまで テンプレート化してたりしていることがあるので気をつけないと。
- 863 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 17:12:40 ]
- >>862
> 冷静なるとしなくていいことまでテンプレート化してたりしていることがある 昨夜、そんな関数テンプレートを必死で非テンプレート関数に直してた・・・。 数日前に必死で関数テンプレートにした箇所だったのだけど・・・。
- 864 名前:デフォルトの名無しさん mailto:sage [2005/08/24(水) 12:24:27 ]
- template<typename X_TYPE>
void xxx(X_TYPE x) {} として型の自動認識の手間減らしは多用するな
- 865 名前:デフォルトの名無しさん mailto:sage [2005/08/24(水) 13:32:40 ]
- そうね。時々やる。いっそのこと型を書くのはオプションにして
MLみたいに型推論してくれればいいのにと思う。
- 866 名前:デフォルトの名無しさん mailto:sage [2005/08/24(水) 17:50:00 ]
- C++ 0xだとそんな機能が追加されるとかされないとか。
- 867 名前:デフォルトの名無しさん [2005/08/28(日) 09:36:27 ]
-
テンプレートがちんぷんかんぷんでまったく理解できない私に 理解できるようになる方法を教えてください。まじで。
- 868 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 11:02:49 ]
- 引数の型を使うときに決められるんだよ。
- 869 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 11:35:27 ]
- >>867
騙されたと思ってstd::min()でも使って味噌。
- 870 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 13:22:51 ]
- せめてstd::vector くらい使わないとありがたみ沸かないだろう。
- 871 名前:デフォルトの名無しさん mailto:sage [2005/08/28(日) 18:04:02 ]
- >>867
つ[C++ Templates(英文)]
- 872 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 06:58:30 ]
- STL バンザイ
- 873 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 21:56:02 ]
- STLとboostが無かったら俺C++使いつづけて無かったよ。
- 874 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:30:29 ]
- 俺もそうだ。
- 875 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 00:21:09 ]
- 会社でtemplate使うなって言われたんだけど…
何故?
- 876 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 00:24:13 ]
- 会社で使いこなせるヤシがいないからと邪推
- 877 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 00:31:06 ]
- 代わりにLISP使え
もっと困るかもな へへ
- 878 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 03:19:35 ]
- >>875
それは、あなたが馬鹿だからです。
- 879 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 03:26:37 ]
- お前だけは使うなって言われたなら
そうかもしれないけどさ
- 880 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 09:13:41 ]
- >>875
まともな会社にうつるべし
- 881 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 09:55:32 ]
- >>875
会社に聞け。 ここで聞くようなやつは>>878に決定。
- 882 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 10:02:04 ]
- >>881
なんでそんな必死にこの話題にフタしたがるの? コンプレックスでも刺激された?w
- 883 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 11:09:31 ]
- >>882
頭、大丈夫か?
- 884 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 14:45:37 ]
- VC6のプログラム保守してるとかじゃないのか>875
- 885 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:33:39 ]
- >>883
大丈夫だよ。 質問に答えられない誰かさんの頭は大丈夫じゃないみたいだけど。
- 886 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 03:17:12 ]
- ・移植性重視
・扱える開発者が少ない or メンテする人が固定とは限らない のどっちかだろうねえ 後者の事情のほうが多いと思うけども
- 887 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 02:16:23 ]
- 管理職の団塊世代が、ピュアなC以外理解できないとか
- 888 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:28:28 ]
- 名前空間→記述が冗長すぎる
テンプレート→制限が多すぎる クラス→継承が可読性を悪化させる その他→コンパイル時間が長すぎる
- 889 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 23:39:18 ]
- C++→俺が解からない
- 890 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 23:45:15 ]
- 俺が解からない→みんなも解からない
- 891 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 02:04:02 ]
- >>886
>移植性重視 templateって移植性下がるの?
- 892 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 02:33:11 ]
- 例えばGCCと心中するつもりならGCCで動けばOKって人もいるでしょ
- 893 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 02:46:27 ]
- >>891
ある程度ISO C++に準拠したコンパイラがない環境には移植できなったりだとか。
- 894 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 03:16:30 ]
- 少なくとも、vc7.1とgccの両方で動くテンプレートくらい書けないと
話にならないと思うけど。
- 895 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 12:53:08 ]
- VC7.1とgcc3.3以降で動くテンプレート書くのは簡単だろ、どっちもほぼ100%標準準拠なんだから。
むしろVC6とかgcc3.2とかで動くか動かないか判断する方が難しいと思われ。
- 896 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 13:14:28 ]
- >>895
VC6とgcc3.2以前はもうあきらめた。 というかエラーメッセージすらとんちんかんな時があるのが頭痛い。 昔の仕事のプロジェクトコードのメンテでちょっとしたテンプレート書いてとかで 引っかかると泣きたくなる。
- 897 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 13:25:22 ]
- >>894-895
まるで、複数コンパイラで有効なテンプレートを書くのが上級者であるかのような言い方だな。 そういった汎用性のあるテンプレートは入門者レベルの機能しか使ってない。 君らは、入門者レベルのテンプレートしか書いたことないんだろ?
- 898 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 13:31:55 ]
- スレの存在を否定するような行為が、目下のベストな対処法
「技巧に走らない」
- 899 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 14:04:38 ]
- >>897
> であるかのような言い方だな。 印象だけでものを書く場合、その印象がトンチンカンだと 残りの文章がすべてトンチンカンになるから今後は気をつけな。
- 900 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 14:25:57 ]
- シンプル伊豆ベスト
- 901 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 15:15:35 ]
- >>897
「入門者レベル」とか「汎用性のある」とか、 自分が「上級者」じゃない事がバレバレなんですがw まぁ、恥の上塗りだけはしないようになw
- 902 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 18:43:40 ]
- >>888
つまり、templateに限らずC++は糞だって事で包茎?
- 903 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 19:37:56 ]
- ていうかお前が包茎。
- 904 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 19:45:33 ]
- 24時間テレビ C++ は地球を救う
- 905 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 20:09:37 ]
- >>902,904
んなこたーない。
- 906 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 22:11:14 ]
- >>894は馬鹿だな。
- 907 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 01:31:57 ]
- 894は、VC以外でも通るように、typenameちゃんと書けとか
その程度の意味じゃねえの?
|

|