Generic Programming with C++ Template
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG参考図書:
Modern C++ Design
Andrei Alexandrescu, Addison-Wesley, ISBN:0-201-70431-5
(訳書: ピアソン・エデュケーション, ISBN:4-89471-435-3)
http://cseng.aw.com/book/0,,0201704315,00.html
Generic Programming - STL による汎用プログラミング
Matthew H. Austern, ASCII, ISBN:4-7561-3441-6
関連スレッド:
C++相談室 Part3
http://pc.2ch.net/test/read.cgi/tech/1003832761/
STL スレッド
http://pc.2ch.net/test/read.cgi/tech/1004287394/
0243241
NGNGマクロの部分ならなんとかなるかもしれないけど。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGAndrei Alexandrescu にも無理(だった)
>>240
どうでもいいが Loli じゃなくて Loki な。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGありません、ごめんなさい
0249デフォルトの名無しさん
NGNGRuby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++
0250デフォルトの名無しさん
NGNG0251Rubyは好きだけど、比べることは不毛だ。
NGNG= って可能性は無いわけ?
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGたぶん operator>>>>>>>>...() だから stream から入力してるんだと思うが。
0254デフォルトの名無しさん
NGNG別スレが丁度あるじゃん。
0255デフォルトの名無しさん
NGNGいや、激しくビットシフトしてるんだと思うぞ。
0256デフォルトの名無しさん
NGNGはしっこのビットがはみ出すくらいに・・・
0257デフォルトの名無しさん
NGNG確かに画期的だとは思うのだけど。
インラインしてくれる分、それだけコードは早くなるんだけどね。
0258デフォルトの名無しさん
NGNGコンパイラのオプションをいじって、最適化を「速度優先」から「サイズ優先」
に変更しましょう。インライン展開が、かなりの程度まで抑制されます。
0259デフォルトの名無しさん
NGNG全く変化なしでしたよ。
0261デフォルトの名無しさん
NGNG最近のCPUではインラインしすぎはかえって遅くなることが
あるんで、よろしく。STLに限った話じゃないけども。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGインライン展開されてたのにはびっくりした。
0264デフォルトの名無しさん
NGNGそりゃマクロだからインライン展開するわな。
つうかマクロをインライン展開というのかは微妙
# あれにびっくりしたのには同意。
0265263
NGNGBEGIN_MSG_HANDLER(Hoge)
MESSAGE_HANDLER( WM_HOGE ,OnHoge )
//OnHogeがここにinline展開される
MESSAGE_HANDLER( WM_HOGE2 ,OnHoge2 )
//OnHoge2はここにinline展開される
END_MSG_HANDLER()
LRESULT OnHoge(){...} //ここではbpかけられない
LRESULT OnHoge2(){...}
};
0266デフォルトの名無しさん
NGNGそんなあなたに
__asm { int 3 }
(っつー話じゃないか)
0267デフォルトの名無しさん
NGNG著者に遠慮して本書いてないか?modern~はとても実践的な本だけど、もっとTypelistに
特化した馬鹿みたいなオタク本を書いて欲しいところだな。
0268デフォルトの名無しさん
NGNG彼のWebページは何だかな。
0269デフォルトの名無しさん
NGNGいやWebで公開するには惜しいアイディアがあるんだろ。
more modernが出るのをひたすら待つのみ
0270デフォルトの名無しさん
NGNGAlexandrescuは彼のパクリ
0271デフォルトの名無しさん
NGNG知ったかしてます?
なんか具体的なこと語ってみてよ
0272デフォルトの名無しさん
NGNG使えるけど、それ以外のことにも可能性がある点が面白いわけで
270のような奴はそもそも勘違いしてるんだろな。
0273デフォルトの名無しさん
NGNGなんかローダーがエラー返してくる。。
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG下の本注文しますた!
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG何処まで許されているのだ?
0278デフォルトの名無しさん
NGNGこれからはC++コンパイラといえばG++を指します。
0279デフォルトの名無しさん
NGNGVC、BCB、gccしか知らないものですから・・・。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGしかし g++ と G++ は、かなり違う気がするが。(特に UNIX だと)
0282デフォルトの名無しさん
NGNG偉い大変だよな。みんなあれをすんなり覚えられた?
0283仕様書無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGG++(1) GNU Tools G++(1)
名称
g++ - GNU プロジェクト C++ コンパイラ (v2.4)
書式
g++ [option | filename ]...
解説
C コンパイラおよび C++ コンパイラは統合されました。 g++ は
gcc に C++ を解釈するようにするオプションをつけてコール す
るスクリプトです。詳細は英語版のオンラインマニュアルおよび
gcc(1) を参照して下さい。
情報が古いと思われ。っつーか基本的にスレ違いだよな、この話題。
0291デフォルトの名無しさん
NGNGgccかCodeWarriorぐらい。
しかたがないね。
CodeWarriorかおか?
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGgcc使いなさい。
0295デフォルトの名無しさん
NGNG(`ε’)プンプン
0296デフォルトの名無しさん
NGNGできん。
特にVCでは不可能。
BCCでも機能が足りん。
テンプレートクラスの中でテンプレートクラスが宣言できない。
T1 < T2 < T3, T4 >, T5 >みたいな複雑なテンプレートの特殊化ができない。
これじゃねー。
0297デフォルトの名無しさん
NGNGはっきり言ってただのオナニーコードじゃん
GCCだけで閉じられてる商用プロジェクトなんてあんまり
ないんじゃないかと思うがどうよ?
結局現時点では実践向きじゃないって事?
0298デフォルトの名無しさん
NGNGそれができるとどんな利点があるの?
0299デフォルトの名無しさん
NGNG>BCCでも機能が足りん。
これってテンプレートの限界を表わしてるよね。
これじゃ実用にならない。
0300デフォルトの名無しさん
NGNG>>298
テンプレートパラメータとしてタイプリストを
作りそのリスト値から任意の型を取り出せる。
>>299
vs7のコンパイラならいけるらしい。
それにlokiはansic++準拠だよ
テンプレートの限界じゃなくて
コンパイラメーカーの限界
0301デフォルトの名無しさん
NGNGと、マンネリな煽りはさておいてvcも7.1で対応させるとか、させないとか。
0302デフォルトの名無しさん
NGNGうふ♪
0303デフォルトの名無しさん
NGNG素のC++だと、"Deriverd" という文字列からDeriverd型のオブジェクトを作成できなくて
云々とあるけど、この本のどのへんのコードを見れば文字列からオブジェクト生成するのが楽に
汎用的にできるのかがさっぱりわかんない俺はガス管くわえて死んだ方が世の中の為ですか?
0304デフォルトの名無しさん
NGNGコンパイラの内部表現としての型と
コードに記された型名の違いということではなくて?
0305デフォルトの名無しさん
NGNG0306296
NGNG本を読んでから、返事をください。
先の例より複雑なテンプレートがいっぱい出てきます。
>>303
本の例とは逆に
template < class T > class GetClassNameAble{
char* getClassname() { return T; }
}
みたいなことができても面白いと思われ。
0307デフォルトの名無しさん
NGNGそんなのいみねー
文字列からクラスを生成(Reflection)できると便利だが(構造上&仕様上不可能なのは承知)
>>306の例だとほとんど使う意味がない
0308デフォルトの名無しさん
NGNG> 本を読んでから、返事をください。
> 先の例より複雑なテンプレートがいっぱい出てきます。
了解しますた。もっと勉強します。
0309デフォルトの名無しさん
NGNG「実用」の定義によるな。gcc で仕事してる人間には実用レベルだし、Win32
アプリケーションを VC6 で書いてる人間には使い物にならん。
ただ、VC も BCC もいずれ ANSI C++ 準拠してくるだろうから、そのときに
使える選択肢が一つ増えるって事で。
(そういや Boost に Loki 入れようという話、どうなってる?)
0310デフォルトの名無しさん
NGNGWindows上のプログラムでは未だに従来のデザパタのサンプルコード
みたいなのが使われてるなんて、、、なんか違和感あるなw
0311デフォルトの名無しさん
NGNGクラス名を文字列化するのは typeid(T).name() で出来るし。別に面白くもなんとも。
0312303
NGNG神。
0313296=306
NGNGこの例、面白くなーい?
残念だなー。
>>307
const char*なら、いけるんじゃない?
もしくはコンパイラが自動的にFactoryを作ってくれるというのも
面白いかも。
というかTypeListで作れるか。あはははは。
0314デフォルトの名無しさん
NGNGつくって。
0315
NGNG>(そういや Boost に Loki 入れようという話、どうなってる?)
って初耳なんだけど、本当なの?
誰か情報キボンヌ
0316デフォルトの名無しさん
NGNGそのクラスのコンストラクタのアドレスがわかれば、
実行時にダイナミックにクラスの作成できるかな?
実装依存(コンパイラ依存)なら書けるでしょうか?
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGBoost の開発者 ML で議論してる。スレッド長いから追ってないけど
Andrei Alexandrescu も話に参加してる模様。
(メールアドレスが @hotmail.com だけど)
0319デフォルトの名無しさん
NGNG実装依存って言ったらそれこそなんでもありやん
0320デフォルトの名無しさん
NGNGそそ、ダイナミックにソース作って、コンパイラ起動して、できたプログ
ラムに制御渡しゃどんなクラスでもできるぞ。
0321315
NGNGboost-dev(?) の ML 読んでんの?すげー。
所詮俺は厨房である事を再確認した・・・
cppmlぐらいなら分かるんだけどさすがにそんなところ
まで手は伸ばせんわ・・・
独り言sage
0322デフォルトの名無しさん
NGNG> boost-dev(?) の ML 読んでんの?すげー。
全部は追ってないし、開発にも参加してない。必要そうなヤツだけ斜め読み
だよ。(C++ は仕事道具だし)
Boost -- Boost mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost
> cppmlぐらいなら分かるんだけどさすがにそんなところ
cppml ではなくて cppll かしらん?
俺は cppll は最初は読んでたんだが、エピスが検定試験云々言い始めた頃に
S/N 比が許容値を下回ったので切った。最近はどうなん?>読んでる人
0323デフォルトの名無しさん
NGNGcppIIは今も取ってるが未読が1253通(藁
全然読んでないよ。
エピス氏はコード出して技術的な話をしているうちはいいが、
取り巻きも含めて雑談モードに入るとうるさいからな。
重鎮扱いで誰もつっこめないし。
0324デフォルトの名無しさん
NGNG俺も彼の言語感覚についていけないクチだね…
自動で s/ぢ/じ/g してから読めば少しはマシになるかな(w
0325デフォルトの名無しさん
NGNG10代、せめて20代前半ならまだ許せるが、
某本で素顔の写真見ちゃったからなぁ・・・
0326デフォルトの名無しさん
NGNGわりといますね。典型的な(略)
0327デフォルトの名無しさん
NGNG漏れは怖くてできない
電柱○家
Tit○w
あ○る
あたりが突っ込んできそうだな。
「いきなり出てきてあんたの方が役に立ってない」とかいいながら。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGhttp://www.csg.is.titech.ac.jp/~chiba/opencxx/html/index.html
これとの組合せでたのしいことになったりしませんか?
0331デフォルトの名無しさん
NGNGなにこれ?
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGあのMLでは「低いS/Nの中からいかに情報を取り出すか」というのも重要なテーマです(藁
うまいフィルタ作れないかな。もちろんcppで。
0334デフォルトの名無しさん
NGNGテンプレート周辺にバグがあるんでしょ?がっかり。
しっかりしてくれよ、Borland。期待してるんだから。Pascal以外の言語もがんばってくれよ。
0335デフォルトの名無しさん
NGNGえっ?初耳。ソースはどこかにありますか?教えて下さい
0336デフォルトの名無しさん
NGNGstruct pr : public std::binary_function< string, string, bool>{
bool operator()(const string& x, const string& y)const{
return search(x.begin(), x.end(), y.begin(), y.end()) != x.end();
}
};
vector<string> articles;
・・・
articles.erase(remove_if(articles.begin(), articles.end(), bind2nd(pr(), "ぢ")), articles.end());
articles.erase(remove_if(articles.begin(), articles.end(), bind2nd(pr(), "ちう")), articles.end());
0337デフォルトの名無しさん
NGNGarticles.erase(remove_if(articles.begin(), articles.end(), bind2nd(pr(), "FUKUDA Fumiki")), articles.end());
で。
0338デフォルトの名無しさん
NGNGえっ?猫耳。
0339デフォルトの名無しさん
NGNGえっ?愛猫。
0340デフォルトの名無しさん
NGNGつまんねーよきみら
0341デフォルトの名無しさん
NGNGすごい!!
0342デフォルトの名無しさん
NGNGtemplate<class T> void swap(T& x, T& y) {}
template<class T> void swap(vector<T>& x, vector<T>& y) {}
これコンパイル通らないんだよね・・
プログラミング言語C++ではこういう書き方してるのに。
■ このスレッドは過去ログ倉庫に格納されています