Boostを語れゴラァ part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/02/07(火) 20:53:54前スレ
BOOSTを語れゴラァ
http://pc8.2ch.net/test/read.cgi/tech/1091198276/
0232デフォルトの名無しさん
2006/03/29(水) 10:41:45230みたいにほかの使い方をしてもいいだろ。
0233デフォルトの名無しさん
2006/03/29(水) 11:10:400234デフォルトの名無しさん
2006/03/29(水) 23:48:230235デフォルトの名無しさん
2006/03/29(水) 23:54:30え?なになに、悔しかったの?
こんくらいで煽られたとかいってんのかぁ。無菌室で育ったのかなぁ…。
もしくはゆとり教育のせいか…。
今日のニュースで高校教科書策定の話が出てたけど、
それは「脱ゆとり」を目指して作られたらしいよ。
もう一度高校生からやりなおしてみるのはどうだろうか?
0236デフォルトの名無しさん
2006/03/29(水) 23:58:55トリッキーな使い方をするのは自由だけれども。
0237デフォルトの名無しさん
2006/03/30(木) 00:19:34なんか不味いの?
0238デフォルトの名無しさん
2006/03/30(木) 00:27:34>>230のような例になってないのは勘弁してくれな
0239デフォルトの名無しさん
2006/03/30(木) 08:20:20そうしたいということ自体が苦し紛れだ!って話?
別に>>230みたいなのでもいいと思うけど、嫌なの?
0240デフォルトの名無しさん
2006/03/30(木) 09:04:29auto_ptr<thread> th;
hoge(thread * t) {th.reset(t);}
};
try{
auto_ptr<thread> th(new thread(...));
hoge x(th.get());
th.release();
}catch(...){ ... }
ってやらないと、スレッド関連はいろいろマズいんじゃないの?
0241デフォルトの名無しさん
2006/03/30(木) 10:07:54ウザw
0242デフォルトの名無しさん
2006/03/30(木) 10:42:32オブジェクトに参照カウントを持たせて、intrusive_ptr を使うべきではある。
で、counted_base から派生させると楽だったんだけど、
counted_base は非推奨になってしまったのでそういうのは自前で
用意しないといけないが。
0243237
2006/03/30(木) 21:47:23やっぱりintrusive_ptrにするのが筋なのかぁ。
shared_ptrはよく使うけど、intrusive_ptrはほとんど使ったことないんだよね(面倒くさくて)。
thx。調べてみます。
0244デフォルトの名無しさん
2006/03/30(木) 21:57:19ものすごく悔しかったみたいだから許してあげて。
0245デフォルトの名無しさん
2006/03/30(木) 22:00:21ブラックボックス的に便利だからと使うのはちょっと危険。
0246デフォルトの名無しさん
2006/03/30(木) 22:08:34何あのマクロの嵐
0247デフォルトの名無しさん
2006/03/30(木) 23:02:330248デフォルトの名無しさん
2006/03/30(木) 23:57:55ウザw
0249デフォルトの名無しさん
2006/03/31(金) 21:56:58C++奥深すぎ、と思い知らされた
0250デフォルトの名無しさん
2006/03/31(金) 21:58:590251デフォルトの名無しさん
2006/03/31(金) 22:55:00私達中華人民はあなたたちの掲示板を拝見して笑ってみてますよ。ではありがとうございました。
0252デフォルトの名無しさん
2006/03/32(土) 04:28:04罪:しらん。使ったらろくな目にあわないだろう事は目に見えてるから、スルーしてるし
0253デフォルトの名無しさん
2006/03/32(土) 10:49:090254デフォルトの名無しさん
2006/03/32(土) 15:28:510255デフォルトの名無しさん
2006/03/32(土) 15:33:510256デフォルトの名無しさん
2006/03/32(土) 15:41:260257デフォルトの名無しさん
2006/03/32(土) 15:43:240258デフォルトの名無しさん
2006/03/32(土) 15:45:22ここにある
0259デフォルトの名無しさん
2006/04/02(日) 04:47:53恥ずかしいしね
0260デフォルトの名無しさん
2006/04/02(日) 09:32:37どんな下手くそなコードだろうと、本人がこっ恥ずかしいコードだろうと。
自分と違う考え方が表記されてるので常に参考になるものだ。
0261デフォルトの名無しさん
2006/04/02(日) 10:24:54激しく同意。
まぁプログラミングに限らない話だけど。
0262デフォルトの名無しさん
2006/04/02(日) 12:50:490263デフォルトの名無しさん
2006/04/06(木) 10:05:111パスにまとめる機能ってないんでしょうか?
a...(略)... b...
A...(略)... B...
0264デフォルトの名無しさん
2006/04/06(木) 10:45:57> a...(略)... b...
> A...(略)... B...
この例の意味がわからんが、
s/a\(.*\)b/A\1B/ ってことなのか?
0265デフォルトの名無しさん
2006/04/06(木) 10:46:45正規表現 part2
http://pc8.2ch.net/test/read.cgi/tech/1131028296/
0266263
2006/04/06(木) 11:31:35(a|b)でマッチさせたときに
置換文字列で順序付きでA、Bを指定できるようなイメージのつもりで書きました。
regex_iteratorの正規表現に(a|b)を指定させて
コールバックさせればいいのは分かるのですが、
置換文字列の方でそのような方法は確立されてないのでしょうか?
0267デフォルトの名無しさん
2006/04/06(木) 13:59:110268デフォルトの名無しさん
2006/04/06(木) 15:16:30「順序付き」の意味が曖昧なんだけど、 (説明が下手すぎ)
regex_replaceで、
"(a)|(b)"
"(?1A)(?2B)"
とは違うのか?
http://www.boost.org/libs/regex/doc/regex_replace.html
0269263
2006/04/06(木) 16:50:10できました、ありがとうございます。
(なぜかデフォルトの引数のmatch_defaultだけだととだめでした。)
boost::regex_replace(std::string("abc"),boost::regex("(a)|(b)"),"(?1A)(?2B)",boost::match_default | boost::format_all);//ABc
[a-z] -> [A-Z]
にしたいときはやっぱり
"(a)|(b)|.....(z)"
"(?1A)(?2B).....(?26Z)"
というおそろしい事態になってしまうのでしょうか?
0270デフォルトの名無しさん
2006/04/06(木) 17:04:32boost::string_algo
0271デフォルトの名無しさん
2006/04/06(木) 18:03:24「なぜか、ありがとうございます」
に読めて無意味にワロタww
0272263
2006/04/07(金) 15:58:35正規表現マッチ部分の置換をファンクタ指定できないぽ・・・
template <typename IteratorT,typename OutIteratorT,typename RegexT,typename ReplaceFnT>
void ReplaceRegexCopy( IteratorT ,IteratorT ,OutIteratorT ,const RegexT& ,ReplaceFnT);
template <typename MatchResultT,typename OutItr,typename NumT> void Replace(....);
0273デフォルトの名無しさん
2006/04/12(水) 09:07:19vc 7.0 でコンパイルすると,
boost::ptr_vector<const int*> pVect(1);
const int* i =new const int(1);
pVect.push_back(i); // コンパイルエラー
pVect[0] = i; // OK
となるのだが…
0274デフォルトの名無しさん
2006/04/12(水) 09:11:140275デフォルトの名無しさん
2006/04/12(水) 09:16:24ところで、boost::program_options で
インタラクティブなモードがあったら便利だなぁ、とか思いません?
いまはオプションの値をコマンドラインと設定ファイルから供給することが
できるわけですが、インタラクティブにキーボードから受け付けてくれるとべんりだなぁ。
あ、でも画面制御が必要なら curses とか使うハメになるから
Boost の枠内では無理なのかな。別に画面制御が必要な方式じゃなく、
単にライン読み込みでいいんだけどな。
0276デフォルトの名無しさん
2006/04/12(水) 09:40:25The story behind this question is that I would like to be able to build a simple
GUI parameter dialog based on the options_description, and I want to map
different types to different widgets.
こんな話題も出てましたね。
0277デフォルトの名無しさん
2006/04/12(水) 17:24:08でrftgyふじこpl
0278デフォルトの名無しさん
2006/04/20(木) 12:31:23コンテナだと、こんてな.end()で得て、
イタレータだとイタレター名()でコンストラクトってことになってるけど、
boost::iterator::filter_iteratorはend()を持っています。
どうしてなんでしょうかね?
0279デフォルトの名無しさん
2006/04/20(木) 13:20:52自分が止まるべき場所を知っていないとまずい場合があるからです.
実際に作ってみればすぐ分かりますが,
最後の要素のいくつかが filter_iterator の条件に合致した場合,
filter_iterator が終了場所を知っておかないと
increment において overrun してしまいます.
0280デフォルトの名無しさん
2006/04/20(木) 13:32:460281デフォルトの名無しさん
2006/04/20(木) 14:08:200282デフォルトの名無しさん
2006/04/24(月) 23:53:37ここんとこC++でいやいや仕事させられてるんで変なライブラリとかも見る機会が
あるんだが、BOOSTとか見ると何であんな複雑怪奇なことをしてGeneric Programmingに
取り組んでいるのか理解に苦しむ。素直にLisp/Scheme使えばいいのに・・・
アレは理解できない・というよりしたくない。エラーメッセージもわけわからんし、
修正→コンパイル→デバッグのサイクルに費やす時間が異常に長いしで不毛なことこの上なし。
166 :デフォルトの名無しさん :2005/12/05(月) 03:40:22
>>165
確かに boost の lambda は笑った。すべてをコンパイル時にやろうという
C++ の執念は凄いが、実用性は?だよね。
0283デフォルトの名無しさん
2006/04/25(火) 00:36:20Lisp/Scheme が素直だとは言えない環境も多くある。
ネイティブバイナリが必要なマイナーな環境でも
C++ と boost で Generic Programming の恩恵が受けられる。
十分な実用性だと思うよ。
0284デフォルトの名無しさん
2006/04/25(火) 00:41:33そこまでして C++ で偽 Generic Programming をやること自体が実用的だろうか、
という問題提起だろ。環境云々は別にして。
Generic Programming 自体が目的(そういう状況が想像できないけど)なら別だが。
0285デフォルトの名無しさん
2006/04/25(火) 00:45:55Generic Programming をすると実用性が下がるという前提がおかしい。
0286デフォルトの名無しさん
2006/04/25(火) 00:56:11あんな中途半端な機能で生産性が向上したりプログラムが読みやすくなったり
するのか、という意味での実用性だよ。速度的なペナルティは少ないからいわゆる
実用プログラムで使っても何ら問題はないと思うけど、使おうという気が起きない。
0287デフォルトの名無しさん
2006/04/25(火) 01:23:41さっきから C++ での Generic Programming じゃなくて、 boost::lambda に限った話だよな。
まさか std::vector 使う気がおきないからって可変長配列を自分で書き起こすわけも無いだろうし。
boost::lambda の「使おうという気」はこんな感じ。
http://www.boost.org/doc/html/lambda/s03.html#id2707350
これ読んで使う気にならないなら使わなくていい。
むしろライブラリの設計自体と思想が合わないだろうから使わないほうがいい。
0288デフォルトの名無しさん
2006/04/25(火) 01:32:40もちろんC++のテンプレート一般の話ではなく、Boostのlambdaの話ね。
その例は知ってるけど、正直言って実際に仕事のプログラムで使おうという気は
起きなかった。C++でここまでできるんだという面白さはあるし、ある意味Boost
らしいなとも思うけどね。
0289デフォルトの名無しさん
2006/04/25(火) 02:54:46ローカルクラスが普通のクラスと同じように扱えるだけでも十分です……
0290デフォルトの名無しさん
2006/04/25(火) 06:47:00CLOSのdebugもたいがい苦しいが。
daemon methodやcall-next-method駆使してある
他人のプログラムは追っていてもわけがわからなくなるよ。
boost::lambdaで一番困るのは、
何故コンパイルエラーになるかすぐに分からない時。
3行くらいになる型同士を比較したり。文句言う人がいるのも分かる。
0291デフォルトの名無しさん
2006/04/25(火) 20:14:570292デフォルトの名無しさん
2006/04/25(火) 23:07:32研究室で遊んでる分には楽しいけどね
0293デフォルトの名無しさん
2006/04/25(火) 23:09:38もっと遅い言語がいっぱいビジネスで使われている現状は無視するのね
0295デフォルトの名無しさん
2006/04/25(火) 23:17:55かかんと思うぞ。>>293はPerlとかPHPとかRubyとかPythonとかそういう系だろ。
0296デフォルトの名無しさん
2006/04/25(火) 23:38:04まで考慮すれば速度的にC++を超える言語なんかアセンブラ/機械語だけだろ。
0297デフォルトの名無しさん
2006/04/25(火) 23:53:46C++を速度的に超える言語はいくつかあると思う。
某サイトのベンチマークではHaskellよりも遅いと出てるし、
速度的にはCとC++は分けて考えないと。
0298デフォルトの名無しさん
2006/04/26(水) 00:04:02Javaが遅いのは許せるがLispが遅いのは許せない
0299デフォルトの名無しさん
2006/04/26(水) 00:05:12PerlとかPHPとかRubyとかPythonは、言語というよりWeb向けのスクリプトでしょ
Lispと比べてどうする?
0300デフォルトの名無しさん
2006/04/26(水) 00:08:27言語自体の問題とコンテナ等ライブラリの実装の問題も分けて考えないと。
0301デフォルトの名無しさん
2006/04/26(水) 00:08:290302デフォルトの名無しさん
2006/04/26(水) 00:09:55そうだよね
C++なんて幾らでもパフォーマンスを上げられるよね
生産性は落ちるかもしれないけどね、まあトレード・オフって奴だ
0303デフォルトの名無しさん
2006/04/26(水) 00:11:12最近のビジネスアプリケーションの多くがそういう「スクリプト言語」で記述されて
いるのは事実だぜ。
0304デフォルトの名無しさん
2006/04/26(水) 00:13:53速度云々よりもランタイム環境(ライセンスなども含めて)の問題が大きいかもね。
0305デフォルトの名無しさん
2006/04/26(水) 01:07:390306デフォルトの名無しさん
2006/04/26(水) 01:19:26開発できるツールとして成立してないじゃん。
0307デフォルトの名無しさん
2006/04/26(水) 01:33:580308デフォルトの名無しさん
2006/04/26(水) 01:44:05この露出狂が!
0309デフォルトの名無しさん
2006/04/26(水) 13:26:49その言語を使える人間が簡単に確保できることがもっとも重要なのさ。
0310デフォルトの名無しさん
2006/04/26(水) 15:58:140311デフォルトの名無しさん
2006/04/26(水) 16:29:08printf("%E\n", lexical_cast<double>("+52.0000E-03"));
で、
> 5.200000E-002
と表示されたが。
0312デフォルトの名無しさん
2006/04/28(金) 15:14:120313デフォルトの名無しさん
2006/04/28(金) 22:27:510314デフォルトの名無しさん
2006/04/30(日) 02:37:120315デフォルトの名無しさん
2006/04/30(日) 14:44:250316デフォルトの名無しさん
2006/04/30(日) 18:52:520317デフォルトの名無しさん
2006/05/04(木) 03:39:43忘れ去られたな。
一人で作ってるライブラリだとこうなることが多い。
0318デフォルトの名無しさん
2006/05/04(木) 03:52:52似たようなのが他にあればそっちを使っても良いけど
0319デフォルトの名無しさん
2006/05/04(木) 10:50:04SingletonはBoostでも作成中みたいだけど、どうなったんかね?
0320デフォルトの名無しさん
2006/05/04(木) 15:54:040321デフォルトの名無しさん
2006/05/04(木) 19:18:33どんなんなるか早く見てみたいな
0322デフォルトの名無しさん
2006/05/04(木) 19:53:12もう2年以上更新が止まってるんだね
もう日本語サイトは用済み? みんな本家を見てるの?
0323デフォルトの名無しさん
2006/05/04(木) 20:09:57テコ入れに君が翻訳に参加すれば状況は変わるお。
頑張ってくれ、応援してるお。
0324デフォルトの名無しさん
2006/05/04(木) 20:21:20Boost自体がもう停滞気味
0325デフォルトの名無しさん
2006/05/04(木) 22:30:05ツール使ってジェネれートされたhtmlソースを見たら
翻訳する気が失せた。
0326322
2006/05/04(木) 22:43:38Javaだと皆直接英語を見ることが多いなあ
インド人とかと仕事する機会が多いことも英語への拍車をかけてるかも
>>324
Javaだと例えばJBossとジェロニモが覇権争いをしてる、みたいな感じでイノベーションに
休む暇が無いって感じなのにね
JavaからC++に来て思ったのがデザインパターン知ってる人がおそろしく少ない点
知っててもホントに基本的なsingletonとかfactoryとかその程度だし
0327デフォルトの名無しさん
2006/05/04(木) 22:49:15昔の話だから今はどうか知らないけど、Javaの場合、日本語訳がウンコだったてのもあるからじゃない?
0328322
2006/05/04(木) 22:51:39優秀な奴がプログラムすると素晴しいものができる、と信じてる
最も成功してるGoogleとかは、開発にC++使ってんのかなあ?
0329デフォルトの名無しさん
2006/05/04(木) 22:54:40無いからな。
0330デフォルトの名無しさん
2006/05/04(木) 23:07:25ttp://goog-sparsehash.sourceforge.net/
使ってないのにこんなもん造ってるならそれはそれで笑えるな
0331328
2006/05/04(木) 23:35:13俺は使ってると信じてるよ、間違い無く使ってるはずだと
Google的なイノベーションを起こすのはC++だってね
だからC++に可能性を感じてるんだが
でもGoogleの基盤システムのソースコードを読んでないから確信のままなんだけどね
でもこれからのイノベーションはこっちの方向なんだろうね
■ このスレッドは過去ログ倉庫に格納されています