1 名前:デフォルトの名無しさん [2009/08/28(金) 16:53:36 ] 過去スレ part 7 pc12.2ch.net/test/read.cgi/tech/1232367742/ part 6 pc11.2ch.net/test/read.cgi/tech/1207749841/ part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/ part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/ part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/ part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/ part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/ ■関連サイト■ Boost C++ Libraries www.boost.org/ Boost 翻訳プロジェクト boost.cppll.jp/HEAD/ Let's Boost www.kmonos.net/alang/boost/ boost info shinh.skr.jp/boost/
495 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 18:50:55 ] >Boostを入れるのは大掛かりすぎる 自分もboost入れる前はそう思ってた
496 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 19:05:31 ] そりゃTR1ライブラリよりBoostの方が格段に信頼性は上だろうな だが世の中には色々な(往々にして訳分からんand/or間違った)理由で「Boostは ちょっと」って奴もいるからなぁ 他人のコードでバグ出た時ってマジきついしー、みたいに言われた時は、そんなら 標準ライブラリも普通にバグ出るから使うなよって思った
497 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 19:15:41 ] そんなこと言ってるやつのコードよりboostの方がよっぽど信用できるわな
498 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 20:17:47 ] >>496 単に今までのスタイルを壊されるのが嫌だって理由の連中がいたりするからなあ そういうのがいると、バージョン管理ソフトさえ入れられない。
499 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 20:37:11 ] そういうヤツの会社は潰れるか少なくとも競争には負けるから 心配要らないよ。
500 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 21:29:34 ] >>486 まず数十行程度の自作スマートポインタから始める。 それで事足りればそれでおしまい。 それじゃ足りないと頭を抱えた時になって初めて確信を持ってshared_ptrを使う。
501 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 05:25:49 ] shared_ptrだと生に比べてパフォーマンスも下がるし、かなりサイズも大きくなるってのもあるし、 本当に必要かどうかは考えた方が良いのかも。 特にサイズはポインタ1つあたり10倍以上増えるんだっけ? 生ポインタ 参照カウンタ shared_ptrのvirtual関係 デリータ+virtual ミューテックス で。
502 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 06:43:23 ] shared_ptrを使わなければ実装できないデータ構造ではそれらのメンバは必須であり 10倍以上という増加も必要な増加だ。
503 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 08:18:04 ] >>501 それは最悪の場合のサイズでしょ。 virtual関係を共通化したり、atomic操作を使ったり、 実装上の工夫でもっと減らせる。
504 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 08:51:26 ] パッと見だとInterlocked系の操作で済ませてるからミューテックスとか要らなくね?
505 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 09:21:34 ] shared_ptrのミューテックスはマルチスレッドのためのものじゃない。
506 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 09:23:34 ] えっ
507 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 09:30:25 ] 何に使うの?
508 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 09:46:19 ] 日本の参政権は日本人のためだけのものじゃない。
509 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 09:48:11 ] 僕たちは天使じゃない。
510 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 10:07:51 ] トムは鉛筆ではない
511 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 13:07:00 ] Tom is a pen.
512 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 13:15:29 ] >>503 そりゃboostのは使わないで自分で作れと言ってるのか?
513 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 13:41:26 ] つーかboostのってmutexなんか使ってんの?
514 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 14:40:30 ] mutexではなくspinlockになってた
515 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 14:47:02 ] atomicなintrinsicが使えるような処理系ならその辺使わないんじゃね? 知らんけど
516 名前:デフォルトの名無しさん [2010/01/18(月) 15:35:24 ] spinlockを使うのは排他中の処理が非常に早く完了するだろうと予測しているから?
517 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 16:42:09 ] >>500 1 ひとりプロジェクトならスマートポインタは必要ない。 2 協調作業の場合、自作スマートポインタの仕様を説明するのが面倒だからよそのライブラリを使ったほうが説明しやすい ゆえに自作スマートポインタは必要ない
518 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 16:45:09 ] >>517 > 1 ひとりプロジェクトならスマートポインタは必要ない。 いやいやいや。
519 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 16:55:00 ] scoped_ptr以外はコード毎最適実装が無限にあるからね
520 名前:503 mailto:sage [2010/01/18(月) 19:32:14 ] >>512 誤解させてすまんかった。 boostの環境依存コードにはすでに実装上の工夫がだいぶ入っている。
521 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 20:14:11 ] >>501 それはどこのshared_ptrですか? boostのshared_ptrはカウンタクラスにvtableとuse_countとweak_countしかないよ。 アトミック命令でインクリメントするからミューテックスは必要ないし。
522 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 20:23:32 ] >>521 アトミックも何も使えない環境だと本当に肥大化するよ。 1.35のsp_counted_base_pt.hppを見てみ。
523 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 21:02:05 ] シングルスレッド確定なら #define BOOST_SP_DISABLE_THREADS という手もある
524 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 21:10:38 ] >>523 そんなん初めて知ったわ
525 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 00:05:31 ] shared_ptrだけ使いたいって欲求は少しわかるな。 環境や使用できるライブラリが他人に決められてしまう場合とか。 せめてshared_ptrだけの導入なら説得できるんじゃないかとか思ったことがあるw >>481 find_if()とかでこんなの考えたけど意味が違うか find_if( v.begin(), v.end(), bind( &tuple<string, int, int>::get<0>, _1 ) == str ); binary_search()は思いつかないなあ
526 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 01:03:05 ] ライブラリの普及活動ってデリケートだよな、 失敗時に下手すりゃ関連ライブラリにも飛び火するし。
527 名前:progress_display mailto:sage [2010/01/20(水) 13:10:13 ] まったくですよ
528 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 15:01:57 ] >>527 貴方はお引き取りくださいw
529 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 16:37:42 ] 飛び火するようなアレだっけ?
530 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 16:54:00 BE:480255528-2BP(0)] progress_displayを見たとき ああこれは他のプロセスから進捗状況を取得できるAPIも用意されてるんだな。 そうにちがいない。 まさか表示するだけなんてことはあるまい。
531 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 11:44:45 ] もう許してやれよ
532 名前:compressed_pai mailto:sage [2010/01/22(金) 20:58:00 ] 絶対に許さない
533 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:59:47 ] paiってなんかえろいな
534 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/01/23(土) 08:00:23 ] 貧乳ですねわかります
535 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 08:35:21 ] #define compressed_pai 3
536 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:58:04 ] せめて浮動少数にしてあげて;;
537 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:10:44 ] compressされてるので無理です。有理だけど。
538 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:27:42 ] #define compressed_pai (355/113)
539 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:28:17 ] 355.0/113.0
540 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:34:26 ] そういやこんなスレがあったな。 ttp://pc12.2ch.net/test/read.cgi/tech/1248060999/ 無限精度実数ライブラリなんだとさ。 これさえあればpiも無限精度でいけるぜ。 ・・・いつ使うのかはしらんが、画期的なにおいがある。
541 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:18:09 ] ICUサポートを有効にしたままRegexをstatic-staticでビルドってできないのかな? ICUをstaticでビルドしてるからRegexもlink=staticでビルドしたい
542 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:42:20 ] ま、無限精度じゃないしな。
543 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:08:45 ] >>541 Bjamのソースか関連ファイルを改造しないと無理と思われます。
544 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:24:32 ] 更新しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Spirit] Spirit: added compile time assertion diagnosing a configuration mismatch Spirit: working around false static assert on earlier versions of gcc Spirit: fixing tests for qi::matches[] Spirit: fixed signed/unsigned mismatch in Qi's binary parsers Spirit: added spirit::ostream_iterator Spirit: fixed violation reported by inspect Spirit: fixing nasty bug in rule copy constructor Spirit:: adding missing function in multi_pass policies. Spirit: added specialization for signed char - doh! [Bimap] fix missing include headers, ticket #1521 fix count() constness, ticket #2484 [Graph] Changed to BOOST_THROW_EXCEPTION (except in one test case) [Math] Change cbrt implementation to use a better performing algorithm. Change functions named "check" so they don't conflict with Apple macro of the same name. [Asio] Add coroutine::is_complete() and support for "yield break;". [Type_traits] Fixes #3704. [Property_tree] Fix a weakness in the XML whitespace tests. This allows me to have correct tests after fixing PR2855, which is also in this commit. [Python] Support different MS calling conventions, thanks to Nicolas Lelong. Closes #3833. [Mpl] Fix bitand/bitor conflicts with iso64.h header
545 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 01:36:59 ] boost.asio で boost::asio::ip::tcp::socket socket(io_service); socket << "request" << hoge << "\r\n"; とすれば socket.send(std::string("request") + boost::lexical_cast<std::string>(hoge) + "\r\n"); と同じ事をしてくれるような機能はないのでしょうか
546 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 14:53:21 ] boost::iostreams使ってラッパ作るとか
547 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 14:57:15 ] boost::asio::ip::tcp::iostreamは既に存在する
548 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:05:01 ] namespace boost.asio 内に socket& operator<<(socket&, const std::string& request); って関数用意するくらいしか思いつかないな iostreams とか使ってもできそうな気がするけど
549 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 22:13:04 ] asioのマニュアル>Examples>HTTP Clientでもお読み
550 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 22:41:49 ] asioってソケット何個まで同時に開けますか?
551 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 12:06:43 ] boostの使い方じゃなくて実装を中心に解説してる本ってあるの?
552 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 22:13:17 ] >>550 OSの制限まで使えると思う。Asio自体には特に制限はないのでは?
553 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 23:22:17 ] あっしお(あっそ)
554 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 00:28:44 ] >>552 じゃWinの場合は1スレッド32個までなのかな。
555 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 03:11:51 ] >>554 WaitForMultipleObjectsの制限で64個のほかに何かあるの?
556 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 20:34:31 ] 1.42.0
557 名前:デフォルトの名無しさん [2010/02/06(土) 23:11:24 ] >>556 祝age
558 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:38:54 ] えー・・・ 昨日1.41.0入れたばかりなのに ちなみにその前日まで1.38使ってました
559 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:34:45 ] ちょっと教えて欲しい。 C言語の getopt(argc, argv, "o::") $ command -oarg <- arg は-oの引数 $ command -o arg <- arg は-oの引数とみなさない を boost::program_options で実現するにはどうしたらいい? desc.add_options()("option,o", value<std::string>()->implicit_value(""), "desc") でいけそうな気もするけど 1.33.1 縛りなので implicit_value が無いらしい(´・ω・`)
560 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:55:40 ] program.optionsは1.42でも更新されてるから最新で試してみれば?悩むのはそれからでもいいんじゃね?
561 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:17:07 ] >>560 とりあえず使える状態だった1.41.0で implicit_valueを試してみたけどダメみたいだね。 次のargvを引数にするみたい(´・ω・`)
562 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:20:18 ] program_optionsは、以前試したら、 unicode対応の意味を分かってないクソ設計だった。 正直、progress_displayと同レベル。
563 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:35:40 ] program_optionsはもうちょっと何とかならないのかな。あとspirit。 定番用途なのにもったいない。 progress_displayは別にいいや。
564 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:51:05 ] >>563 Boost.Spiritはv2になってコンパイル速度が遅く なったのが痛いな。 とはいえCPUがこれから先 さらに進歩すれば十分使えるようになるだろう。 ・・・たぶん。 program_optionsはそもそも事前にビルドしておかないといけないってのが 難点というか、俺はそれで使ったことない。 progress_displayは・・・まあ別にいいや。 rootでなくてどっかのディレクトリに入って欲しいなぁってくらい。
565 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:01:06 ] 更新しました。trunkはまだ1.42のままです。 ttp://booster.x0.to/ 以下更新内容の一部 [Exeption] improved memory leak test. [Math] Improve the performance of the Bessel functions, and update docs. [Fusion] Fusion: adding overload for const parameter types Fusion: fixed adapt_class to be usable with Spirit, added adapt_class_named [Spirit] Complete Unicode Level-1 support: table generation. Spirit: adding workaround for MSVC falsly trzing to use multi_pass::operator== for other iterators Spirit: buffer[buffer[...]] does not result in double buffering anymore, added tests [Property_tree] Fix an issue in MSVC for ptree::equal_range.
566 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:01:47 ] [Regex] Improve regex performance on msvc by removing statically allocated recursion stack, and using a std::vector instead. [Program_options] fix in winmain, Fixes #3879 [Serialization] Added comment regarding intentional anonymous namespace in header [Statechart] simple_state::context() now also finds bases of state types. [Uuid] switch from the Boost Test Library to boost/detail/lightweight_test.hpp moved uuid generators into their own file [Wave] Wave: added found_unknown_directive preprocessing hook, bumped version number 亦、libs_for_build_boost.rarもICUを4.3.4にアップデート致しました。
567 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:07:56 ] boost/exception.hpp が使えなくなってるぅぅぅるうううるるううーorz boost/exception/all.hpp を使えだってさ
568 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 00:35:02 ] >>567 さすがにこの変更はないわ boost/exception.hppでall.hppをincludeしてくれたらよかったのに
569 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:08:38 ] >>562 海外製のライブラリはそんなのが多いような気がする。 VisualStudio限定の話になるけど、文字セットを「Unicode文字セットを使用する」に設定するとおかしくなる感じで。
570 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:22:46 ] boost::exceptionは破壊的変更やりすぎ もっと練ってから入れて欲しかった
571 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 20:05:03 ] 何も考えずにall.hppに変更してたんだけど、そんなことになってたのか。 spiritに続いてこの仕打ちは酷いよ。
572 名前:564 mailto:sage [2010/02/08(月) 21:31:20 ] boost::exceptionも使ったことないから分からん。 やっぱboostに入るぐらいだから便利なんだろうか。 紹介を見てもそんな例外をばりばりに使用しないしって思っちゃう。。。
573 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 22:52:17 ] 例外でエラー通知する場合は便利じゃない
574 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 05:19:46 ] Boost 1.42 shared_ptr<string>がBoost.Serializationでシリアライズできない。 STATIC_ASSERTにひっかかる。
575 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 14:04:38 ] >>561 結局、command_line_parserに渡す前に自前で処理しました。 GNU拡張とはいえgetoptにできることぐらいはできないと困るね(´・ω・`)
576 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 14:05:14 ] shared_ptr まだシリアライズできないバグがあるのかw 何やってんだw
577 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:16:31 ] Boost.Serializationって どんなときに使うのでさ?
578 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:18:30 ] データを直列化し総サイズを算出して現在進行しているアルゴリズムの進捗状況と照らし合わせて progress_displayに情報を渡す。
579 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:35:36 ] 1.41と1.42は本当にちゃんとテストしているのだろうか
580 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:29:12 ] >>578 progress_displayすげー。
581 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:49:53 ] >>577 処理状態をファイルか何かに保存したりしたい時 例えばゲームのセーブロードとか、CGIのセッション保存とか
582 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 06:09:02 ] 設定の保存と読み込みによく使ってるわ iniとか使う気になれんし
583 名前:577 mailto:sage [2010/02/11(木) 11:47:05 ] >>581-582 ありがとう。 なるほど。途中状態の記録とかに便利なのか。。。
584 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 18:53:45 ] 今までBoost無しでスタティックライブラリ開発してたんだけどもうBoost入れるわ・・・ でもさ,Boostに依存しまくったライブラリとかみんな使ってくれるかな・・・
585 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:11:18 BE:420223627-2BP(0)] Boostを入れなくても使えるようにすればいいんじゃないか?
586 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:26:29 ] そうか分離出来るかわからないけどヘッダにboostに依存する型が入らないようにしてみる 自力ビルドしたい人とかサポート外環境の人には諦めてboost入れてもらうことにしよう・・・
587 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:56:16 ] 矢沢「え?せっかくのC++なのにBoostついてないの・・?・・・・・それはもったいない・・」
588 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:33:38 ] STLでさえ禁止のところあるからなぁ・・・ Qtはおすすめ
589 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 00:19:46 ] >>584 依存しまくったライブラリでも有用性があるならおkでしょう。 ただしそのライブラリが複数あるなら、依存しないでかけるライブラリは その方が良いのかもしれんけど。
590 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 00:24:33 ] >>588 > STLでさえ禁止のところあるからなぁ・・・ 別にそんな会社は潰れちまえばいいだけだろ。 ・・・え?ウチの会社・・・?
591 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 00:34:20 ] テンプレートが使えるだけありがたく思え
592 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 05:18:35 ] Boost使えなす(´;ω;`) ↑STLが使えるだけマシだろ ↑テンプレート使えるだけマシだろ
593 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:18:03 ] >>592 この板の「職場で使わせて貰えない」系の嘆きも、そういう順で変化してってるよね。 俺が最初にこの板来た頃はテンプレートで、次にSTLになって、今はBoost。 「C++0x使わせてもらえない」も来るかな。autoくらい使わせてくれよ的な。
594 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:30:16 ] Boost使えなす(´;ω;`) ↑STLが使えるだけマシだろ ↑テンプレート使えるだけマシだろ ↑C++使えるだけマシだろ ↑C使えるだけマシだろ ↑アセンブラ使えるだけマシだろ
595 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:33:03 ] さすがに意味がわからん