- 1 名前:デフォルトの名無しさん [2008/02/27(水) 02:03:30 ]
- C++標準ライブラリの一つ、STLについて。
前スレ 【C++】STL(Standard Template Library)相談室 8 pc11.2ch.net/test/read.cgi/tech/1198435319/ 過去ログ・リンク・書籍紹介は >>2 以降
- 196 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:03:38 ]
- >>193
C++2003 に準拠しているならそれでも規格の範囲内。 変更できないことが明記されるのは次の C++0x から。 www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#103 コンパイル通るからといっても、まずいことがわかってるなら やらないでおいたほうがいいね。
- 197 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:04:28 ]
- >>193
Effective STL 第22項をどうぞ。
- 198 名前:デフォルトの名無しさん [2008/03/08(土) 21:12:44 ]
- >>196
サンクス。STLってたくさん欠陥があるんですね。 >>197 サンクス。今度立ち読みします。
- 199 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 08:45:25 ]
- stringにバイナリ書き込みで、
resizeした後、・・・1 c_str()でポインタ取って、・・・2 memcpy・・・3 してます。 2ってSTL的には読み込み専用ポインタであり間違ったコードなんですが、 動作してるのでほっとこうか、正しく書こうか迷ってます。 どうしたら良いでしょう?
- 200 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 08:47:18 ]
- >>199
間違ったコードを正しく書くのに、何を迷うの?
- 201 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 08:50:50 ]
- >>199
必要な知識は全部持ってるみたいだが、何を訊きたいんだ? 未定義動作に依存するという欠点よりもそのコードが持つ利点が大きいと考えるなら それを使い続ければいいし、そうでないなら書き換えればいい
- 202 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 08:50:55 ]
- いろいろ。
じゃ、直しておきまつ。
- 203 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:18:13 ]
- コンストラクタやassignとかappendがあるもんな。
イテレータにstd::copyでもいけるし。
- 204 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:05:07 ]
- >イテレータにstd::copy
イテレータンって参照するだけじゃないんだ。 イテレータンがメソッド持ってるって考え方がイマイチわかんないんだおね。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:29:40 ]
- いや、イテレータを引数に取れる関数だろ
- 206 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:51:25 ]
- イテレータは何かを反復するもの。「何か」は参照かもしれないし、操作かもしれない。
- 207 名前:デフォルトの名無しさん [2008/03/11(火) 20:59:59 ]
- ifstreamで半角空白を含むファイル名や、日本語を含むパスで
ifstream ifile(フルパス名);で失敗してしまうのですが、これは仕様なのでしょうか? 仕様なのでしたら回避策はあるのでしょうか? Visual Studio 2005SP1を使用しています。 よろしくおねがいします。
- 208 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:05:45 ]
- 問題が再現する最小限のコードを貼れ。まずはそれからだ。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:05:59 ]
- ロケールの設定とか?
- 210 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:29:37 ]
- コンパイルはVisualStudio2005 Command Promptで行いました。
#include <iostream> #include <fstream> #include <windows.h> using namespace std; int main(int argc, char **argv) { ifstream ifile("新規テキスト ドキュメント.txt"); if(ifile) { MessageBox(NULL, "success", "info", MB_OK); ifile.close(); } else { MessageBox(NULL, "failed", "info", MB_OK); } return 0; } 結果はfailedとでます。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:31:17 ]
- 間違えました。
フルパス名をコピペして、\を一つ減らしてエクスプローラーに貼り付けると正常に開けます。 ifstream ifile("d:\\新規テキスト ドキュメント.txt");
- 212 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:32:25 ]
- まさか、そのファイルがカレントディレクトリに置いてないとか言わないよな?
つーか、このスレより環境依存OKのスレかWindows関連のスレの方がいい希ガス。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:42:30 ]
- ありがとうございます。
環境依存スレに行ってみます。
- 214 名前:デフォルトの名無しさん [2008/03/12(水) 03:34:34 ]
- vectorに要素をpush_backするとき、全ての要素がこっそりと引越し、
要素を指していたポインタが無効になり、ひどい目にあうことが あるということを知りました。 そこで質問なのですが、引越し時の要素のコピーは コピーコンストラクタを使って行われるのでしょうか? それとも単純にmemcpyなどで行われるのでしょうか?
- 215 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 04:23:23 ]
- >>214
コピーコンストラクタじゃなきゃヤバイでしょ。 あくまで例だけど、int型のメンバxと、そのアドレスを持つint*型のメンバpxがあって、 pxの値をmemcpyなんかした日にはえらいこっちゃ。
- 216 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:50:53 ]
- >>214
もすこし具体的にどうぞ。 >>215 あんたも何を言いたいんだか。
- 217 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:51:34 ]
- コピーコンストラクタでpxをdeep copyしてなければ同じようにえらいこっちゃ。だけどね。
- 218 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:53:22 ]
- >>217
それは別問題
- 219 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:56:14 ]
- >>214
再割り当て時にはコピーコンストラクタが使われるよ。
- 220 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:57:26 ]
- >>216
俺は第三者だけど、>>214が何を訊きたいかは分かるし、>>215の回答も理解できるよ。 >>215は当を得た回答だと思う。
- 221 名前:217 mailto:sage [2008/03/12(水) 08:01:58 ]
- deep copy するわけじゃないのか。215が言いたいのは。
コピーコンストラクタでpx=&xが必要ってことだな。多分。
- 222 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:06:43 ]
- STLはコピーを前提に作られている。そういうもの。
- 223 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:07:42 ]
- >>214
要素は引っ越しません。
- 224 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:46:07 ]
- >>221
コピーコンストラクタという言葉を使っているところからして、 ユーザー定義型がvectorにどう扱われるかを訊きたがってるんだろうな、と判断した上で、 「コピーコンストラクタを用いなければ"正しく"コピーできない型があり得るのに、 vectorが内部で勝手にmemcpyによるコピーで満足しちゃうなんてことは無いよ」 って回答した次第。
- 225 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:49:23 ]
- >>223
嘘をつくな
- 226 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:50:39 ]
- >>223
規格に"引っ越し"という言葉は書いてないという揚げ足をとってるのか? それとも単にC++を知らないだけ?
- 227 名前:217 mailto:sage [2008/03/12(水) 09:01:52 ]
- I got it.
関係ないけどクラスをmemcpy、memcpyするソースをよく見かける。怖くて仕方ない。
- 228 名前:217 mailto:sage [2008/03/12(水) 09:02:25 ]
- memset、memcpyだった。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 09:03:13 ]
- 怖いじゃなくて、memsetだとプログラム落ちるだろ、jk
- 230 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 09:05:39 ]
- そういうのはCのノリが抜け切れてない年寄りが多いの?
- 231 名前:217 mailto:sage [2008/03/12(水) 09:15:12 ]
- >>229
落ちるとは限らないよ。仮想関数がないクラスではうまくいく。(memsetでセットする値が適切なら) 仮想関数があるクラスでmemset(this,0,sizeof(this))とかやると 仮想関数ポインタが0になるので、 ポリモーフィズム使用時にNULLポインタアクセスで落ちた。 だから抽象クラスにしたいときには、memsetしてないか全部チェックせなあかんかった。 >>230 そうだね。特に組込系が多いね。クラスを構造体の延長として使ってる。
- 232 名前:217 mailto:sage [2008/03/12(水) 09:22:43 ]
- tp://sunlight.cocolog-nifty.com/sunlight/2006/11/class_56c5.html
こういう変なことする人もいる。class S が 仮想関数を持つクラスをメンバ変数に持ってたら ダメじゃんって突っ込みたい。 スレ違いでゴメン!
- 233 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 09:28:30 ]
- 突っ込みたいなら突っ込んであげればいいのに
- 234 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 10:05:25 ]
- >>232
君がインストラクタになってあげなさい
- 235 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:47:55 ]
- 引っ越しって言えば、moveだろ。
copyを引っ越しと言うのは無理があり過ぎる。
- 236 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:49:21 ]
- >>235
引越しは後片付けしてから出て行くよ。
- 237 名前:217 mailto:sage [2008/03/12(水) 15:43:34 ]
- 自分は暗黙のインストラクタでいいのでw
- 238 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:05:27 ]
- >>235
「copyを引っ越しと言」ってるようには見えないよ。「引越し時の要素のコピー」って書いてある。 コンピュータデータのmoveは、実際には「copyする」ことと「元を削除する」ことで成り立っているわけで、 つまり「move(ここではvectorの要素の再配置のこと)の手段としてのcopy」の表現だろう。
- 239 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:28:37 ]
- コピコンでは普通は deep copy する。
そういうもの。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:56:24 ]
- 参照カウント付きハンドルの場合はそうじゃないけど。
(boost::shared_ptr etc)
- 241 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:00:16 ]
- それは特殊例
- 242 名前:デフォルトの名無しさん [2008/03/14(金) 00:11:29 ]
- インストラクタwww
- 243 名前:214 [2008/03/14(金) 01:02:08 ]
- レス遅れてすみません。解答してくださったみなさん、
ありがとうございます。 でも、*ほとんどの* ケースでは、単純なmemcpyで済みそうなのに、 いつでもコピーコンストラクタが使われるという仕様に疑問を感じます。 コピーコンストラクタが使われるとなると、コピー元のオブジェクトに 対してデストラクタを呼び出す必要があります。これは、*ほとんどの* ケースでは全く馬鹿馬鹿しい無駄です。 それならreserve使え、とおっしゃるかもしれませんが、どれだけの 領域をreserveしておけばいいのか、前もって計算できないことも よくあります。 引越し時のコピーはmemcpyで行われるべきではないでしょうか? >>215さんが出した例のような場合、ユーザーはreserveを使います。 どうでしょう? だめ?
- 244 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:08:07 ]
- allocatorを指定するとか。
- 245 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:26:34 ]
- >>243
そう、毎度コピーするのは無駄と誰もが思ったから、 今度の規格改定でムーブセマンティクスというものが導入されようとしている。
- 246 名前:オガちゃん萌え ◆tyvkWCNtzY mailto:sage [2008/03/14(金) 01:27:09 ]
- インフラはmemsetやらをやたら使うよ
アーキテクチャ依存すんだからOOPは役に立たん ドメインでアーキテクチャ依存せんようにするにはやむえない …が、インフラのC型記述は拡張子.cにして欲しい イヴァーヤコブソンはそんなユースケース駆動モデルを奨めている STLですらQACでNGになられたんじゃ参るストーン
- 247 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:47:52 ]
- >>245
彼が不満に思っている状況の大半では, move semantics は何の改善ももたらさないのでは?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:53:02 ]
- そうか?移動なら、コピーに比べ格段に低コストだし、
前のオブジェクトのデストラクタは実質やることなくなる。 こういう問題だと思っていた。214が納得するかどうかは別としてだけど。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:09:19 ]
- >>248
memcpy によってコピーできるオブジェクトというのは, (C++0x において条件が緩和される) POD 型のオブジェクトに およそ相当すると思いますけれど,これらのオブジェクトに対しては コピーの操作と (move semantics でいうところの) move の操作は 同じ操作になると考えられるので「move semantics によって改善される」というのは まずいのではないかな,と. デストラクタに関しても, move を使っても copy を使っても 「実質やることがない」のはなんら変わりはないと思います.
- 250 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:11:23 ]
- >>249
ああ、たしかにPODだとそうだね。 言葉足らずですまん。俺は非POD型を入れることことを考えていた。 というのも243でデストラクタを呼び出さなければならないと言っているから、 214=243は非POD型を念頭に置いているのだと思ったため。
- 251 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:04:02 ]
- >>243
手元のVC8ではvector<char>とかvector<int>ならmemmoveを使ってくれたよ。 アラインメントを考慮してrep movsdで転送。 struct Foo{int a; int b;}; vector<Foo>だと単純にループ1まわりにつき 8byte転送するようなコードになってた。 PODを判定できれば両方memmoveに出来るんじゃないかな。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:23:37 ]
- わかってない子が来た
- 253 名前:251 mailto:sage [2008/03/14(金) 13:03:30 ]
- ん、俺のこと?
俺はただ、>>243がpush_backでのバッファ拡張時にmemcpyやmemmoveのような 効率的なコピーが使われないと思いこんでいるようだったから、わかりやすい 反例を示しただけだよ。 >>243 > *ほとんどの* ケースでは、単純なmemcpyで済みそうなのに、 それで済むケースは実際にそうなる場合があるよ、と。
- 254 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:22:12 ]
- >>232のアホ顔軍曹に習ってくる様にw
- 255 名前:251 mailto:sage [2008/03/14(金) 13:40:35 ]
- ん? 仮想関数がらみとか、コピーコンストラクタでpxをdeep copyしなきゃ
ならないケースの話? そういうクラスはPODとは呼ばないけど。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:09:38 ]
- >>251
ちょうどVC8には、__is_podがある。 ただ、手元のVC9 EEのincludeディレクトリをgrepしたが、 使っていないみたいだったorz。
- 257 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:03:11 ]
- かなり初歩的な質問になるんですけど、std::setがどうやっても
当環境ではエラーを起こすのですが、原因わかりますでしょうか #include <set> #include <iostream> int main(){ using namespace std; set<int> nums; // 空のset return 0; } この文を実行した場合、実行時に Run-Time Check Failure #2 - Stack around the variable '_Lk' was corrupted. と表示され,xtreeのソースが表示されます。 環境:WinXP Pro SP3 Visual Sturio 2008
- 258 名前:257 mailto:sage [2008/03/14(金) 19:12:24 ]
- すみません、早速自己解決しました。
単純にPlattformSDKのcrtにあるxtreeが読まれていたからでした お騒がせしました。 ...OSまで再セットアップしたのにorz
- 259 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:06:21 ]
- アルゴリズムに渡す、ちょっとした関数オブジェクトのクラスにどんな名前つけてる?
- 260 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:16:40 ]
- func
- 261 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:18:10 ]
- lambda
- 262 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:22:36 ]
- fuck
- 263 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:15:57 ]
- >>259
クラスの役割にかかわらず名前がつけられるなんて思わないでください。
- 264 名前:オガちゃん萌え ◆tyvkWCNtzY mailto:sage [2008/03/15(土) 17:21:41 ]
- >>259
クラス名決める前に設計段階で静的モデルからクラス図作るからその段階で関数オブジェクトだろうがクラスだろうがメソッドだろうが役割に適した名前になるんじゃないの? 設計改善してコードリファクタリングの過程でまた適した名前にすると思うんだが? STLとは関係ないし 使い捨てツール作るなら、名前なんかテキトー 動けばよろし
- 265 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:37:28 ]
- ちょっとした関数オブジェクトの事だろ
他言語なら匿名メソッドとかラムダですませちゃうような奴 そんなん設計段階で無い事の方が多い
- 266 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:04:14 ]
- はーやく来い来いC++0x
- 267 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:12:04 ]
- >>259
by
- 268 名前:デフォルトの名無しさん [2008/03/18(火) 01:34:41 ]
- 先日放送されたクローズアップ現代(NHKの番組)によると、
日本のプログラマ人口は20万人だそうです(かなり不足して いるらしい)。この20万人の中で、C++の言語機能を一通り 理解して、STLやBoostなどのライブラリをそれなりに使い こなすことのできるプログラマは何人ぐらいだと推測しますか? あなたは20万人の中で上位何パーセントの層に属しますか?
- 269 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:41:05 ]
- マ板で聞いてこいやボケが
- 270 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:49:52 ]
- 今は高度なソフトウェアの需要が少ないので
(そういう会社の数が激減したと言うか) 国内でスキルを持っていても活躍の場があまりない気がする。
- 271 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:53:09 ]
- >>269
やっぱり?でもマ版に入り浸っている人じゃなくて、 具体的なC++の質問に答えられる人にききたいんです。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:58:25 ]
- C++経験者が30%、うち上記条件を満たす人間が30%と感覚で決めつけたとして
20*0.3*0.3=1.8くらいとかだったらいいなぁ・・・
- 273 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:02:42 ]
- boostともかく、STL使わないC++って、どういう使い方してたら発生するんだろう。
C++経験あったらSTLも使ってるんじゃないの? (単純な疑問文です。)
- 274 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:11:44 ]
- MFCオンリーなんて人もいるんじゃね?
- 275 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:16:14 ]
- なるほど。
- 276 名前:268 [2008/03/18(火) 02:19:12 ]
- >>273
STLを使ってるといってもいろいろなレベルがあります。 vectorぐらいは誰でも使っていると思いますが、 コンテナとアルゴリズムを駆使して、コンパクトで エレガントなプログラムを書くとなるとどうでしょうか? >>268では "それなりに使いこなすことのできる" 人の数 を問題にしています。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:55:52 ]
- STLのアルゴリズムは必ずしも最適解ではないからなぁ
- 278 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 04:54:27 ]
- >>268
2000人もいないだろ
- 279 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 05:10:49 ]
- わがまま言ってんじゃねえ
マ板に行け
- 280 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:06:30 ]
- STLやBoostを使えるのが、プログラマ人口の上位とは限らんすぃ
- 281 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 10:10:38 ]
- しかし、C言語しか使えない、もしくは、C/C++両方使えないのは、下位ケテーイ。
Boostって組み込みじゃ氏んでもツカエンよな。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 10:34:45 ]
- C や C++ が必要とされる分野って、コンパクトでエレガントなコードよりも
効率が良くて高速なコードが要求されることが多いような気がする。 両立できればいいんだろうけどさ。
- 283 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 10:39:42 ]
- つまり、C/C++でエレガントなコードが書けたら上位けてーい。
- 284 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 10:40:29 ]
- C や C++ が必要とされる分野って、
開発環境がそれしかサポートしてないだけ
- 285 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 10:46:29 ]
- つまり、今の組み込みの分野。
C++はじまた。 M$/V$オワタw
- 286 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:49:08 ]
- >>268
活躍の場って組み込み系か? DB系だとCなんかよりJava VB C#のほうがラクだし需要あるし ダカラナニ?って感じなんだが。 仮にその上位ってやつだったとして 給料が高くなる保障があるわけでもないし くだらない話題だと思わないわけでもないかもしれない可能性がある
- 287 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:12:54 ]
- 組み込みでC++使うにはSTLやBoostを使いこなす事とは別ベクトルのノウハウが要るよ
- 288 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:14:02 ]
- 言語に特化した知識だけじゃたかが知れてる。
でも・・・C++かわいいよC++
- 289 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:14:44 ]
- ダメな子ほどかわいい(ぼそ
- 290 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:19:20 ]
- STL、Boostがあるからなんとか付き合っていけるんです。。。
- 291 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:21:46 ]
- STL、Boost使ってるけど、「shared_ptrを自分で書け」って言われても多分書けない俺はゴミ?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:28:22 ]
- プログラマとライブラリアンは全然別だから気にすんな。
- 293 名前:オガちゃん ◆tyvkWCNtzY mailto:sage [2008/03/18(火) 23:39:50 ]
- STL/boostは可汎的なライブラリで、これそのものを設計、開発するならそりゃ相当のスキルを要するかも?この世にまだこれらが無かったって前提で
最善の選択肢とは限らないし だけど可汎的だから使うのはさほど大変じゃないと思う…が、使いこなすのはやはり難しいかも JAVAのステータスがどんどん上がってC++のオブジェクト指向開発してるPRJ減ってきたような C++でも構造体をpackしてmemcpyしてるのざらだもんなあ 今のPRJはユースケース駆動モデル(Rational統一プロセス)でOOPに加えてAOP的発想あるが… スレ違いスマソ
- 294 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 03:27:01 ]
- テンプレートが絡むとソースが美しくないんだよなぁ、なんか。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 04:13:55 ]
- おまえさんの美意識は知らんが、
型指定が冗長だからtypedefかヘルパー関数の嵐になるのは仕様。 C++0xのautoで解決されるのも仕様。 既存のライブラリをC++0x用にせっせと書き直す作業が待っているのも仕様。
- 296 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 07:23:45 ]
- 解決はされないんじゃないかなあ。
メンバ変数に書く際には auto じゃどうしようもないだろうし。
|

|