Boost総合スレ part8
..
2:デフォルトの名無しさん
09/08/28 16:55:31
■関連書籍■
Boost C++をチューンアップする最先端ライブラリ
URLリンク(www.amazon.co.jp)
Boost C++ Libraryプログラミング
URLリンク(www.amazon.co.jp)
Beyond The C++ Standard Library
URLリンク(www.amazon.co.jp)
C++ Template Metaprogramming
URLリンク(www.amazon.co.jp)
The Boost Graph Library
URLリンク(www.amazon.co.jp)
■関連スレ■
C++相談室 part71
スレリンク(tech板)
C++0x 6
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 11
スレリンク(tech板)
3:デフォルトの名無しさん
09/08/28 16:57:38
Boost Sandbox
URLリンク(svn.boost.org)
Boost Vault
URLリンク(www.boostpro.com)
Loki
URLリンク(sourceforge.net)
JTC1/SC22/WG21 - The C++ Standards Committee
URLリンク(www.open-std.org)
POCO, the C++ Portable Components
URLリンク(www.appinf.com)
URLリンク(sourceforge.net)
The unofficial BCB Boost patches
URLリンク(bcbboost.sourceforge.net)
4:デフォルトの名無しさん
09/08/28 16:59:27
Boost 1.40.0リリースを祝してスレ立てた。
まだよく見てないけど、mpl::stringとか黒魔術の香りしかしないぜ。
5:デフォルトの名無しさん
09/08/28 17:13:02
乙
mpl::stringキタ━
6:デフォルトの名無しさん
09/08/28 18:09:55
mpl::stringって何がそんなにありがたいの?
7:progress_display
09/08/28 21:04:39
このスレ以降漏れをバカにすることを禁ず
8:compressed_pair
09/08/28 21:22:34
俺漏れも
9:progress_display
09/08/28 23:00:23
>>8
お前はいいんだよバカ!
10:compose
09/08/29 03:11:56
早く仲間になれよー
11:デフォルトの名無しさん
09/08/29 05:50:12
Signal2、Lispみたいに使えて面白いなぁ
12:デフォルトの名無しさん
09/08/29 17:36:05
Wikiにprogress_displayの記事作っといたから。
Uncyclopedia項目リンク
13:デフォルトの名無しさん
09/08/29 18:13:51
ワロタ
14:デフォルトの名無しさん
09/08/29 22:27:56
更新しました。SVNは1.41に移行しました。
URLリンク(booster.x0.to)
以下更新内容の一部
[Units]
Use base_unit_info when computing the name of a scaled base_unit. Fixes #3360.
[Exception]
mutable get_error_info support
[Python]
added missing error checks in operator bool_type(), operator!();
[Mpl]
Use order instead of size to find the next order in the non-typeof implementation of mpl::insert for mpl::map. Fixes #2042.
[Serialization]
Improved implemenation of boost_serializer_map
Improved support for serialization of types in DLLS
New exception for violations of ODR when using DLLS
[Ptr_container]
removed new_clone() overload that causes problems in other contexts
[Spirit]
Spirit: Added karma::stream_generator
Spirit: moved karma::ostream_iterator out of namespace detail to make it usable by user code
Spirit: fixed a problem in lexertl
Prevent overflow in comparison.
[Iostreams]
atttped fix for #2932; will close after next testing cycle completes
1.40リリース版と現時点のSVNでは--build-type=completeとstatic-staticの
ビルドが不可能な不具合が修正されておりましたので、
libs_for_build_boost.rarのreadme.text内不具合情報も更新しました。
15:progress_display
09/08/29 22:55:20
>>12
ふ、ふざけんな(´;ω;`)
16:デフォルトの名無しさん
09/08/29 23:08:05
つ_
17:名無しさん@そうだ選挙に行こう
09/08/30 13:00:21
progress_displayたんとか出来る勢いだな
18:名無しさん@そうだ選挙に行こう
09/08/30 13:32:04
ヘタに出力先を抽象化しない潔さに惚れる
19:デフォルトの名無しさん
09/08/31 00:14:40
>>18
専門家だよな、ある意味。
20:デフォルトの名無しさん
09/08/31 00:16:11
codepad
URLリンク(codepad.org)
長いソースを貼るときはここへ!
ってテンプレに入れようぜ。
まあこのスレはみんなレベルが一定以上あるから
言わなくても大丈夫かもしれないけどさ。
21:デフォルトの名無しさん
09/09/02 04:56:17
>>14
new_clone書いても意味なくなったってこと?
それともデフォルト的なnew_cloneがなくなったの?
22:デフォルトの名無しさん
09/09/05 23:17:23
>>21
よく分かりませんが、とりあえずその更新では/trunk/boost/ptr_container/clone_allocator.hppの
template< class T >
inline T* new_clone( const T* r )
{
return r ? new_clone( *r ) : 0;
}
の部分が削除されました。
23:デフォルトの名無しさん
09/09/06 01:38:11
更新しました。
URLリンク(booster.x0.to)
以下更新内容の一部
[Unordered]
Remove allocator_constructor since it's never used.
Initial checkin of new version of Boost.Unordered.
Remove unnecessary BOOST_DEDUCED_TYPENAMEs
Remove a few unused parameters.
Remove 'static' from next_node and node_count. Will hopefully make vacpp happy.
Combine hash_structure and hash_table_manager.
Move size_ and cached_begin_bucket_ into table, rename hash_table_manager hash_buckets.
[Spirit]
Spirit: using endian from trunk starting with V1.42 only
Spirit: default parameters for custom generator specs, semantic changes to binary generators
Bug fix for bol/eol flag setting.
Hoist the char-class namespaces into qi (for usability)
Spirit: allow for mpl::vector<> instead of mpl::vector0<>
[Type_traits]
Fix warnings emitted by gcc when building with -Wall -Wextra.Fixes #3381.
[Property_tree]
Merge proptree rewrite branch to trunk.
Don't mangle whitespace too much.
[Graph]
Added fixes to and a test for incremental_components from Michael Hansen; fixes #3250
Added qualification to has_no_vertices in cuthill_mckee_ordering; fixes #3376
Added edge() function for new interface of CSR graph,
enabling it to work with the Kolmogorov max-flow algorithm
[Thread]
boost.thread exception types are now header-only so some uses of boost.
thread can be header only
24:デフォルトの名無しさん
09/09/06 13:40:32
職場がBoostを全面的に許可しているとして
boost::shared_ptr
Boost.Function
Boost.Lambda
Boost.Spirit
Boost.MPL
Boost.Preprocessor
これらは実務で使えるレベルまで勉強して習得すべきだと思います?
boost::shared_ptrは使いますが、
Boost.MPLやBoost.Preprocessorは使ったことがありません。
実務で使っている方はいらっしゃいますでしょうか?
25:24
09/09/06 13:48:48
なお、この中ではboost::shared_ptrとBoost.Spiritは実務で使ったことがあります。
26:デフォルトの名無しさん
09/09/06 13:49:54
全面的に許可されているけど、その中ではshared_ptrしか使ってない。
function、lambda、spiritは遊んだことあるけど今のところ実務では使ってない。
必要になってから勉強して習得すればいいんじゃないの?
OJTで十分。
27:デフォルトの名無しさん
09/09/06 13:54:18
ところで>>12の出力例ってprogress_displayに適切な引数か何かを与えれば
全部行けたりするの?
28:デフォルトの名無しさん
09/09/06 14:09:48
mplは使ってる
オーバーロードの曖昧さを解決するためにenable_ifを覚えようとして、芋づる式に
type_traitsやmplも覚えた
29:26
09/09/06 14:16:51
訂正。functionは実務でもバリバリ使ってた。
ここ最近C++/CLIでdelegate使ってたから忘れてた。
30:デフォルトの名無しさん
09/09/06 15:02:57
lambdaは無くても良いから最低限bindが使いたいかな。
TR1に入ってるものくらいは全部許可されていてほしいところだよね。
31:デフォルトの名無しさん
09/09/06 15:11:18
progress_displayのライバルってregexとかbindとかなの?
32:デフォルトの名無しさん
09/09/06 15:21:23
wikiによるとprogram_optionsとcompressed_pairが有力なライバルらしい。
33:デフォルトの名無しさん
09/09/06 15:23:01
progress_displayさんとそんなTR1に入るような雑魚が相手になるはずねーっすよ
34:デフォルトの名無しさん
09/09/06 15:27:58
xpressiveさんが凶悪すぎるだけで、regexさんをうっかり使ってる人も結構いるし、
一応それなりに便利だし
35:デフォルトの名無しさん
09/09/06 16:18:11
mem_fnさんとか、TR1に入らなければcomposeさんと同じ道を歩んでるところだったな
unique_ptrさんが正式にデビューしたらscoped_ptrさんとscoped_arrayさんも……
36:デフォルトの名無しさん
09/09/06 16:41:01
老兵は死なず
ただ消え去るのみ
37:デフォルトの名無しさん
09/09/06 16:42:06
program_optionsは正直コマンドライン引数だけを対象にして書きなおして欲しい
設定ファイル読み込みはいらないと思うんだが…
でもMLでこれを言うのは気が引ける
38:デフォルトの名無しさん
09/09/06 16:58:41
前スレで出たネタだけど、spirit(V1)には若干バグがあった。
1.40でも直ってないし、V2でちゃったしで、もう直らないのかも。
そんな感じなんで、業務に使うのはちょっと勇気が必要な気が。
39:デフォルトの名無しさん
09/09/06 19:32:52
Arrayライブラリ使うのと配列使うのとは
どちらが実行速度速いですか?
いい換えるとArrayライブラリ使うと
配列に速度の点で負けますか?
40:デフォルトの名無しさん
09/09/06 19:40:55
>>39
速度は実測が基本
一般的な最適化が期待できるなら、速度が落ちる理由はたぶん無い。
41:デフォルトの名無しさん
09/09/06 19:42:06
逆に言うと最適化のないデバッグビルドだと大分遅い
42:デフォルトの名無しさん
09/09/06 19:48:15
array.hppはboostでも最も実装が簡単なものの1つだから、単に読めばわかる。
もっとも基本的なインライン化さえされれば組み込み配列と等価だろうね。
組み込み配列に無い操作についても、普通にSTL使って書けば同じ実装になるだろうし。
43:デフォルトの名無しさん
09/09/06 21:00:06
あり^^
44:デフォルトの名無しさん
09/09/06 22:35:32
今頃になって
URLリンク(www.boostcon.com)
にあるBoostconの資料漁ってみた。
まともなドキュメント無いから知らんかったが、
Spirit V2のKarmaって今までのSpirit(V2でのQiに相当)の逆に、
PEGとSemantic Actionを使ってformatするライブラリだったんだな。
それにしても、Qi(氣)とかKarma(業)とか、DQNネーム自重しろよwww
45:デフォルトの名無しさん
09/09/06 22:50:57
>>35
mem_fnは、俺が使わなくてもbindの中の人が使っているというイメージ。
いや、実際そういう実装なのか確かめていないけどさ。
46:デフォルトの名無しさん
09/09/07 08:37:07
>>44
SpiritはDQNネームに含まれないのか
47:デフォルトの名無しさん
09/09/07 13:09:20
>>44
なんてこったいBoostもDQNネームに犯されているのか・・・
自作のプログラムまで波及しないように変数名はシンプルに a とか b にするよ
48:デフォルトの名無しさん
09/09/07 21:20:06
ところでspirit v2って使いやすいの?速いの?1.6と互換性あるの?
49:デフォルトの名無しさん
09/09/07 22:50:51
>>48
確信を付いたな。
50:デフォルトの名無しさん
09/09/07 22:56:51
>>48
解答を拒否する
51:デフォルトの名無しさん
09/09/08 04:32:48
行列計算ライブラリを探しててBlitz++とかCPPLAPACKとか落としてみた後に
BoostのuBLASの存在に気付いたんだけど、これってpdfマニュアル無いの?
52:デフォルトの名無しさん
09/09/08 05:48:28
>>48
実行速度は速いが使いやすくもなく互換性もない。バグもしばしば見つかる。
コンパイルは新しい世界が見えるほど遅い。現状では人柱用だな。
53:デフォルトの名無しさん
09/09/08 20:34:59
warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
と言われるのが邪魔なので、
#pragma warning(disable : 4819)
としてしまおうかと思っているのですが、
しない方がいいでしょうか?
54:デフォルトの名無しさん
09/09/08 20:56:23
どのヘッダーで出るん?
55:デフォルトの名無しさん
09/09/08 21:05:43
昔format.hppで出た記憶があるな。
>>53
消しちゃえ。 プロジェクトのプロパティで消すのもいいよ。
56:デフォルトの名無しさん
09/09/08 21:14:06
問題のヘッダーをincludeする前後でwarningのpush popすればいいんじゃないかな。
57:53
09/09/08 21:49:52
みなさんありがとうございます。
ご指摘のあった
警告レベルがあわないヘッダのインクルードで警告を抑制する方法 | いちばんやさしいゲームの作り方
URLリンク(www.game-create.com)
これで行かせていただきます。
58:デフォルトの名無しさん
09/09/09 17:53:48
Boost.Lambdaに対するPhoenixの長所をまとめた文書は無いのかな
あと、Protoを土台にしたPhoenix V3の開発はどうなってしまったんだろう
59:デフォルトの名無しさん
09/09/09 18:31:14
>>58
LambdaとPhoenixは統合作業中とか聞いてますがね。
60:デフォルトの名無しさん
09/09/09 19:13:24
0xで純正lambda入るから無駄になりそうな
61:デフォルトの名無しさん
09/09/09 19:35:56
>>59
実際に統合作業を進めているレポジトリが見つからないんだよね。
URLリンク(lists.boost.org)
を見る限りだと、統合するというより準備が出来次第LambdaからPhoenixに乗り換える、
っていうことになるような気がする。今は状況が変わったのかもしらんけど。
>>60
C++0xのLambdaはMonomorphicだからPolymorphicなBoost.LambdaやPhoenixとは別物。
SpiritのSemantic Action内でC++0xのLambda使おうとは思わないしね。
62:デフォルトの名無しさん
09/09/09 19:59:17
URLリンク(svn.boost.org)
どうやらPhoenix V3の作業はここから進んでいないようだ
63:デフォルトの名無しさん
09/09/09 20:49:07
たった1つでいいから、すげー汎用性の利いたライブラリを
作ってくれればうれしいんだが。
と言ってみるテスト。
64:progress_display
09/09/09 20:51:01
俺の出番だな
65:デフォルトの名無しさん
09/09/09 21:33:01
Boost.Perl
Boost.PHP
Boost.Ruby
Boost.BASIC
Boost.ECMAScript
何と3ライブラリ同時リリース!!
66:デフォルトの名無しさん
09/09/09 21:35:34
Boost.HSPとBoost.なでしこも仲間に入れてくれ
67:デフォルトの名無しさん
09/09/09 21:52:24
PerlからBoostのprogress_displayが呼べるようになるんだな!
68:63
09/09/09 22:16:27
Boost.Lambda、Phoenix、Spiritの3つじゃなくて
たった1つでいいから…(ry
的な意味でごんす。
決してこれら3つ以外で便利なライブラリの登場を期待しているわけではないごんす。
69:デフォルトの名無しさん
09/09/09 22:18:03
>>62
どういう状況で詰まっているということですかいな?
70:デフォルトの名無しさん
09/09/09 23:24:03
boost::asio で非同期のTCP 通信を行ってるんですが、帯域制限なんかはどうやって実装すれば良いですかね?
async_read() に渡すハンドラの中で sleep() かませば良いですか?
71:デフォルトの名無しさん
09/09/09 23:45:55
>>69
詰まってるというより、Spirit回りの作業の方が優先で手が回ってないようだ
Spirit V2のかなりの部分のマニュアルが1.40に間に合わなくて
今まさに1.41に向けてtrunkの方で書いてる最中みたいだしね
URLリンク(svn.boost.org)
1.41ではやっとkarmaのマニュアルが読めそうだな
72:デフォルトの名無しさん
09/09/10 00:13:14
>>67
誰得
73:デフォルトの名無しさん
09/09/10 02:47:20
>>70
async_read_at()とハンドラ内でsleepかな
やったことないけど
74:デフォルトの名無しさん
09/09/10 19:43:24
>>72
思っても言っていいことと悪いことがだな。
75:デフォルトの名無しさん
09/09/10 21:23:24
口に出したら戦争だろうが!!
76:デフォルトの名無しさん
09/09/10 22:55:14
>>73
できそうです。どもっす
77:74
09/09/10 22:57:23
>>75
カイジか。
78:lambda
09/09/12 03:40:47
VC2010に移行してもここにいる皆さんは僕を使い続けてくれますよね・・・?
79:デフォルトの名無しさん
09/09/12 06:48:57
文字数で_1 < _2の簡潔さを超えられると思うか?
たとえC++に多態ラムダが入っても無理だ。
需要は減っても0にはならないさ。
80:デフォルトの名無しさん
09/09/12 13:27:11
boostとc++0xのlambdaってオーバーヘッドが小さいのはどっち?(実行時)
具体的に言うと、戻り値の関数オブジェクトで関数ポインタ使ってるのかな?
81:デフォルトの名無しさん
09/09/12 13:49:47
理想的なコンパイラを想定するならどっちも同じじゃね?
82:デフォルトの名無しさん
09/09/13 10:48:44
function<int(int left,int right,int top,int bottom)>
のように仮引数名を書いてもエラーにならないんで便利なんですけど、この仮引数名は無視されるんですか?
それとも副作用ある?
83:デフォルトの名無しさん
09/09/13 14:07:32
>>82
言語としては意味が無い。
「便利」というとおり、コードを読む人には意味がある。
84:デフォルトの名無しさん
09/09/13 14:37:18
>>82
副作用は無い。
85:デフォルトの名無しさん
09/09/13 15:41:27
>>83-84
ありがとう。安心して使えます。
86:デフォルトの名無しさん
09/09/13 18:12:06
更新しました。今週はSpiritのドキュメントの更新が中心の様です。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: support use with 1.40 release
Spirit: Unified semantics of tokenize_and_parse functions
Spirit: removed lex::omitted in favor of lex::omit
Spirit: fixing examples
Spirit: Added character generator negation (unary '~' for character generators)
Spirit: Added default template type for stream_generator
Spirit: fixing lexer issue inhibiting usage of more than one instance of a static lexer
Spirit: added static lexer version verifying compatibility with generated tables
[Property_tree]
Fix a missing include problem. Hopefully also fix some other sun-cc problems, though not all.
Fix inspection problems.
Initialize a member variable, fix lots of failing tests.
[Graph]
Removed unused variable due to comment from Gordon Smith
Refactored CSR graph code to get ready for bidirectional support
Changed directedS case to a specialization
Added fixes to grid graph from Michael Hansen
[Units]
add base unit for pound-force
[Mpi]
Templated string serialization on the char type
[Serialization]
reimplemented BOOST_STATIC_WARNING to depend on boost::mpl::print
[Numeric]
matrix.hpp, identity_matrix:
fix #3293: added assignments to size_common_ on each place where size1 or size2 are changed
87:デフォルトの名無しさん
09/09/13 22:39:52
BOOST_STATIC_ASSERT(boolean)
って
#if boolean
とは違うんですか?
どういった利点があるのでしょうか?
88:87
09/09/13 22:45:30
すいません
訳わかんないこと書いてました。
全然違いました
消えます。
ほんとすいませんすいません、、、
89:デフォルトの名無しさん
09/09/13 22:50:40
一生許さない
90:デフォルトの名無しさん
09/09/13 23:26:02
progress_display「あの世で俺にわび続けろ>>87ーーーッ!!」
91:デフォルトの名無しさん
09/09/16 09:37:47
落ちた
92:デフォルトの名無しさん
09/09/16 09:40:07
落ちてなかった
93:デフォルトの名無しさん
09/09/17 14:36:13
静的こそ正義
94:デフォルトの名無しさん
09/09/17 20:52:16
>>93
Spiritさんですか?
ごくろうさまです。
95:デフォルトの名無しさん
09/09/17 20:57:48
>>93
Boost.Regex「てめー俺のことDisってんのかYO!」
96:mpl
09/09/17 21:04:51
私が神だ。
97:xpressive
09/09/17 21:16:11
サーセンwwww
98:デフォルトの名無しさん
09/09/17 21:18:44
Boost C++ Libraries - boost/multi_index/random_access_index.hpp
URLリンク(www.boost.org)
ここなどで出て来る
#pragma parse_mfunc_templ off
は何をしているものでしょうか?
99:デフォルトの名無しさん
09/09/17 21:34:45
>>98
周辺にそのまま答えが書いてあるように見えるんだが……
MetroWerks CodeWarrior 8.3でバグが有って、設定によっては
const&で一時オブジェクトをバインド出来ないから、
コンパイラが独自に用意しているparse_mfunc_templプラグマをオフにしてる。
Boostは準拠度低いコンパイラで動かせるようなWorkaroundが多いから、
自分の処理系で関係ない部分は読み飛ばすべき。
100:デフォルトの名無しさん
09/09/17 21:40:52
具体的には
URLリンク(herbsutter.wordpress.com)
に書いてあるようなやつだな
101:98
09/09/17 22:20:49
>>99-100
ありがとうございます。
大変よく分かりました。
感謝です。
102:デフォルトの名無しさん
09/09/18 23:29:03
macportでゲットした1.40で、objective-cとC++の混在ソースをコンパイルすると、regexpでエラーが出てしまいます。助けてください。
103:デフォルトの名無しさん
09/09/19 00:15:55
>>102
大丈夫かー!もうちょっとで救急車くるぞー!
104:デフォルトの名無しさん
09/09/19 00:17:19
>>102
覚醒者?
105:デフォルトの名無しさん
09/09/19 00:20:03
俺、さっき人生で初めてprogress_displayを使う可能性が出て来た。
単なるサンプルプログラムで、
結構時間のかかる処理だったから、
画面に進歩を表示させるのに使えるんじゃないかと思ってさ。
結局使わなかったけどな(笑)
106:デフォルトの名無しさん
09/09/19 04:05:27
お前のprogress_display童貞を奪うプログラムはどんなものになるんだろうな
107:105
09/09/19 21:18:44
聞いてくれよ>>106よ。
ついにboost::progress_displayを使ったよ。
案外便利だったわ。
超限定的なシチュエーションだが。
108:105
09/09/19 21:19:26
>>106
あと俺は女だ。
109:デフォルトの名無しさん
09/09/19 21:25:02
ああ…次はcompressed_pairだ…
110:105
09/09/19 21:35:19
うーん、compressed_pair処女はたぶん一生守り通すかも。
111:デフォルトの名無しさん
09/09/20 00:38:00
>>105
結婚して
112:デフォルトの名無しさん
09/09/20 03:25:08
progress_displayが実際に使われるなんて、このスレ始まって以来の事件じゃないか。
113:デフォルトの名無しさん
09/09/20 09:48:59
そして次のboostから削除されるオチとかな
114:デフォルトの名無しさん
09/09/20 10:54:22
>>113
断固抗議する
progress_displayはboostの良心
115:デフォルトの名無しさん
09/09/20 11:23:07
mpl化すればいいんじゃね?
116:デフォルトの名無しさん
09/09/20 11:39:10
progress_display好きの俺っ子か、、
ま、新しいとは思うけど、
恥ずかしくないのかねGONZOは
色物で釣ろうとしないで、作品の中身で勝負しろよ。
117:デフォルトの名無しさん
09/09/20 11:42:01
削除しなくてもいいけど、
timerディレクトリの中に入れるとかはした方が良いんじゃないかと。
118:デフォルトの名無しさん
09/09/20 11:59:29
>>12のサンプルみたいなことが出来るI/Fになってるならそれなりに評価する
つーか仕様知らないけど
119:デフォルトの名無しさん
09/09/20 13:41:03
進捗コールバックにfunction渡せたり、
出力ストリームを抽象化して付け替えたりできたらもう
progress_displayじゃないよな
120:デフォルトの名無しさん
09/09/20 13:56:21
>>119
今のところstd::ostreamを継承するクラスに対してのみ出力可能だから、
まああれだ、
一応がんばってんだよ。
121:デフォルトの名無しさん
09/09/20 13:58:04
progress_display童貞だとそうでもないのに
>>110だと、なんかとてつもなくエロい表現に聞こえるな。
122:デフォルトの名無しさん
09/09/21 09:33:20
Boostは次期C++から標準的に使えるという噂を聞いたのですが本当ですか?
どうもboost::lambdaとC++0xのラムダ式はどうも見た目がちがうような…
123:デフォルトの名無しさん
09/09/21 10:08:14
boostの一部が標準として採用されたってことですよ。boost丸ごとじゃないよ。
boost::tr1に採用されたものが入ってる
124:デフォルトの名無しさん
09/09/21 10:19:59
Boostまるごと標準化されるなんて、progress_displayが泣いて喜ぶ話だな
C++0xのlambdaは言語サポートだから、
ライブラリによるboost::lambdaとはまったくの別物
125:デフォルトの名無しさん
09/09/21 10:55:39
c++0xとboostのlambdaは内部的に関数ポインタは使ってるのだろうか。
できれば関数ポインタを使ってないオーバーヘッドが無い方を使いたいな。
126:デフォルトの名無しさん
09/09/21 11:07:51
解説ありがとうございました。理解できました。tr1内のものは名前空間もstd::tr1になっているのですね
127:デフォルトの名無しさん
09/09/23 01:08:48
ラムダ使うと低速になるの?
使うのやーめた
しこしこ関数オブジェクト造るお
128:デフォルトの名無しさん
09/09/23 01:18:51
>>127
どこからそういう結論になった
129:デフォルトの名無しさん
09/09/23 01:35:55
回答の意味が理解できなくて、何とか分かりやすい回答を引き出そうと必死なんだろ
130:デフォルトの名無しさん
09/09/23 01:39:04
>>129
無能の常套手段だよなwww
131:127
09/09/23 03:30:20
かまって欲しくて煽り入れただけだよ^^
132:デフォルトの名無しさん
09/09/23 22:34:19
Boost.Bigintって何か目立つバグがあるんでしょうか?
使っても大丈夫ですかね?
133:デフォルトの名無しさん
09/09/24 23:16:15
>>132
まかした
134:デフォルトの名無しさん
09/09/25 20:52:09
目立たないバグならOKなのか。
ならば、目立つバグを数カ所に仕掛けておくんだ
135:デフォルトの名無しさん
09/09/25 22:49:55
更新しました。この2週間での大きな変化はPython3のサポートでしょうか。
只、このPython3用ライブラリをビルドしようとするとbjamの挙動がおかしくなりますので、
それについてlibs_for_build_boost.rar内のreadmeに記載しておきました。
それと今回のビルドからビルドオプションを --layout=versioned から --layout=tagged に
変更しましたので、ファイル名からコンパイラー名とバージョン番号が無くなります。
これにより、バージョン番号無しの同一内容ファイルを生成するバッチ操作も廃止しました。
以下更新内容の一部
[Conversion]
DISABLE_WIDE_CHAR_SUPPORT -> BOOST_LCAST_NO_WCHAR_T.
[Spirit]
Spirit: fixing segfault if start rule of a grammar is not compatible with the grammar itself
Spirit: imported spirit::standard namespace into spirit::qi and spirit::karma
Spirit: fixed infinite loop if a Kleene is used inside another Kleene at end of input
[Archive]
fix archive_exception conflict with windows header
[Numeric]
see #3457 * matrix.hpp: added move semantics * vector.hpp: added move semantics
[Wave]
Wave: added missing namespace declaration
[Python]
Merged 2009 GSoC work from sandbox-branches/bhy/py3k branch back into trunk.
[Proto]
oops! add back op::address_of definition
[Date_time]
Refs #3308. Changed the internal type of the gregorian dates to 32 bit integer.
[Unordered]
Fix bug where container was reducing the number of buckets.
[Math]
Add hooks for the dcdflib to the incomplete gamma tests.
[Fusion]
Fusion: added nview and friends
136:デフォルトの名無しさん
09/09/25 22:51:16
アドレスを記載し忘れました。
URLリンク(booster.x0.to)
137:デフォルトの名無しさん
09/09/27 13:27:32
boostさんがいなかったC++挫折してました
138:デフォルトの名無しさん
09/09/27 13:32:26
>>137
俺は挫折するほど
やり込みもしなかったと思う。
139:デフォルトの名無しさん
09/09/27 14:15:58
boostさんというかshared_ptrさんがいなかったらと思うと
140:デフォルトの名無しさん
09/09/27 14:34:16
わたしもshared_ptrさんに依存しきってもう戻れない体にされてしまいました
boostは麻薬
141:デフォルトの名無しさん
09/09/27 17:18:05
Windowsプログラミングを勉強しようと思って、Microsoft公式解説書の中で一番エントリー向けな
「文法から始める プログラミング言語 Microsoft VisualC++」を買ってみたら、
BOOST_FOREACHとかlexical_castとかthreadとか使ってたり、
shared_arrayとかmulti_arrayとかの使用を推奨していたり、
TR1のregexとかshared_ptrとかも使ってたりで自動的にBoost漬けになりました。
142:デフォルトの名無しさん
09/09/27 17:29:45
Boostはユダヤの陰謀
143:デフォルトの名無しさん
09/09/27 19:00:34
はじめからboost漬けだと、
もはやC++を勉強したと言えるかどうかすら・・・
144:デフォルトの名無しさん
09/09/27 20:34:52
そういえばlambdaも載ってたよ。
思うに、来たるC++0xとVS2010を見越しての内容じゃないかな。
145:デフォルトの名無しさん
09/09/28 01:21:51
p が char * で;
string str=std::string(p);
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1( str );
とするのと
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1(std::string(p));
で、何で挙動が違うのでしょう?
146:デフォルトの名無しさん
09/09/28 01:43:32
1mmでも他人の立場に立って考える能力があるなら何がどう違ったのかぐらい書いてくれないかな
147:デフォルトの名無しさん
09/09/28 02:54:51
>>140
定期的にshared_ptrの実装を写経しろ
148:デフォルトの名無しさん
09/09/28 18:13:00
Boost.Lambda さんには悪いけど君のコンパイル時間はそろそろ許容できない.
早急に VS2010 に以降して lambda さんとはお別れしたい.
それから Boost.Regex 君もそろそろ引退したまえ.
149:デフォルトの名無しさん
09/09/28 19:58:27
Boost.Regex君まだ使える子よ
150:spirit
09/09/28 20:10:51
>>148
速いCPUに変えればいいと思うよ。
151:デフォルトの名無しさん
09/09/28 20:58:48
>145
tokenizer1 tok1(std::string(p));
だと、この文が終了した段階で一時オブジェクトである string が破棄される。
tokenizer は対象のコンテナに対する参照を iterator で持っていて、かつ
> URLリンク(www.boost.org)
> Parsing is done on demand as the tokens are accessed via the iterator provided by begin.
のように token_iterator でアクセスされた際にパースが発生する為、アクセスのタイミングまで
対象のコンテナが生存している必要がある。
152:デフォルトの名無しさん
09/09/28 21:54:44
>>151 こういうのって、C++0xとかなら、ダミーの右辺値参照のコンストラクタとか使って防止できないのかな?
153:デフォルトの名無しさん
09/09/28 21:55:29
>>148
Spiritに比べれば、Lambdaなんて軽いものさ。
154:デフォルトの名無しさん
09/09/28 22:38:28
boost0xについて
155:デフォルトの名無しさん
09/09/28 22:46:33
spiritのためにOSを64bit板にしようか悩んでいます。
156:デフォルトの名無しさん
09/09/28 23:59:46
shared_ptrってスレッドセーフのと非スレッドセーフのを同時に使うのって不可能?
157:デフォルトの名無しさん
09/09/29 01:21:11
>151
ありがとうございます。STLとboost を使おうと決心していろいろ使っています。
自分で作った方が早くて楽なのになぁと思いつつ
なれれば、STL + boost の方が、安全かつ、早くできるはず と信じて;
158:デフォルトの名無しさん
09/09/29 03:51:34
きみにはむりだとおもう
159:デフォルトの名無しさん
09/09/29 04:39:48
>>152
値は変更しないけど十分な寿命を持った左辺値が必要なときには、そういう手段が
使えるようになるかもね。
現状ではポインタで受け取るようにしてないと、危ないんだよねぇ。
160:157
09/09/29 10:41:11
>158
自分でも無理だと思う。Cばかり20年以上だから;
161:デフォルトの名無しさん
09/09/29 18:45:05
きみにはCもむりだとおもう
162:デフォルトの名無しさん
09/09/29 19:53:49
>152
この場合はダミーというか rvalue reference を受けるコンストラクタも追加すればいいんじゃないでしょうか。
>157
ぶっちゃけ C++ の経験があまりないんだろうなとは思いながら回答しました。popp
一時オブジェクトの生存期間とか C++ 使いなら誰もが一度ははまったことがあり11そうなところなので。
>自分で作った方が早くて楽なのになぁと思いつつ
無理に気負わず自分が書くより楽になると思う部分から使っていけばいいと思います。
163:デフォルトの名無しさん
09/09/29 20:59:08
>>156
shared_ptr複製時のアトミック操作のコストが気になるのかな?気持ちはわかるが、無理だと思う。
非マルチスレッド版とマルチスレッド版の間での共有をどう解決するかだ。その間で共有できないなら利便性が無くなりメリットの乏しいものになる。
普通の使い方ではshared_ptrの複製のコストは問題にならないと思う。
それでも、複製のコストが気になるならshared_ptrを参照渡しにすればコピーのコストはないし、そうすればshared_ptrの複製が減らせられる。
vectorで使うときの大量な複製が気になるならC++0xの右辺値参照に期待しよう。
164:デフォルトの名無しさん
09/09/29 21:33:39
ぶっちゃけ参照カウンタの操作にバスロック命令を使うだけだから大したコストじゃない
と思うけど、ものすごくクリティカルなら知らん
つーか、そんなに激しくクリティカルならポインタ取り出せばいいような気がするし、
デフォのままで問題ないと思うし、たぶんBoostの中の人もそう思ってるからずっと
こういう仕様なんだろうと思うけど
165:Boost.Xpressive
09/09/30 12:20:37
正直、お兄さんはもういらない子だと思うのです
これからはぼくと std.regex 君の時代だと思うのれす。。。
166:デフォルトの名無しさん
09/09/30 14:55:06
>>165
もうなんかいっそのこと
Boost.RegexはBoost.Xpressiveのラッパにしちゃだめなのかな(笑)
167:デフォルトの名無しさん
09/09/30 16:46:19
お前らBoostで特に使えるライブラリ三つ簡単なコード挙げて紹介しろ
168:デフォルトの名無しさん
09/09/30 16:49:56
なんで?
169:デフォルトの名無しさん
09/09/30 17:05:00
>>167
ええと、progress_displayとcompressed_pairと・・・あと何だろう?
program_optionsかな?
170:デフォルトの名無しさん
09/09/30 17:15:52
compressed_pairはGoogleが社内で使用許可を出している数少ないBoostライブラリの
一つだからな
171:デフォルトの名無しさん
09/09/30 17:38:49
>>170
ホントかよw
すげーwww
しかしまあprogress_displayだって安定性では引けを取らないぜ。
172:デフォルトの名無しさん
09/09/30 19:04:14
>>169
てめーprogram_optionsさんディスってんじゃねーよ
俺なんかお世話になりまくりだっつーの
>>165
たしかに使用頻度は激減したけど・・・コンパイル速いじゃん
173:デフォルトの名無しさん
09/09/30 19:29:09
std::regexってboostの転生でしょ。
なので、stdにあるからboostのは要らないというのは変な表現だと思う。
もっとも俺はspirit一筋だけどな。
174:デフォルトの名無しさん
09/09/30 20:52:00
>>167
マジレスするとshared_ptr, scoped_ptr, noncopyable
175:デフォルトの名無しさん
09/09/30 21:44:50
>>173
というか改良が早いのは絶対Boost.Regexなんだろうから
むしろ要るのはBoost.Regexの方。
といってもBoost禁止とかいうイカレタ職場では
Std.Regexを使うことになるんだろうけど。
176:デフォルトの名無しさん
09/09/30 23:39:41
noncopyableって英語おかしくね?
なんとなくだけど
177:デフォルトの名無しさん
09/09/30 23:41:01
>>176
おかしいらしいね。
でも一度そうしちゃった以上どうしようも無いんだろうな。
178:デフォルトの名無しさん
09/09/30 23:45:40
まぁ、本気で気になるなら、おかしくない名前も使えるようにするとかな
179:デフォルトの名無しさん
09/10/01 02:42:09
でもさ、 uncopyable だとウンコみたいでいやじゃね?
180:デフォルトの名無しさん
09/10/01 02:54:41
いっそDQNネームにするのもありじゃね
コピーできない増えないクラスを作るライブラリっぽい名前
Boost.Virginとか
181:デフォルトの名無しさん
09/10/01 09:12:46
>>180
ちょw
恥ずかしいなw
Boost.DQNとかあってもおかしくない様に見えてくるのが不思議。
182:デフォルトの名無しさん
09/10/01 09:19:27
>>180
singletonライブラリーですね。わかります。
183:デフォルトの名無しさん
09/10/02 16:36:11
気がついたら
boost\serialization\singleton.hpp
ってのがあった
184:デフォルトの名無しさん
09/10/02 17:15:25
boostのserializationについてです。
CStringがシリアライズできるように
template <typename Archive>
void save(Archive& ar, CString const& str)
{
std::string const s(convert(str)); // CStringからstd::stringに変換
ar & make_nvp("", s);
}
などとするとXML出力に<>(文字列)</>と空の要素タグが付いてしまいます。
この要素タグを出力しないようにしたくて調べてみたのですがxml_archive::save(std::string const&)を
使えば良いようです。
しかし、xml_archive::saveはprotectedなので使えません。
何か良い方法ないでしょうか?
185:デフォルトの名無しさん
09/10/02 17:34:29
>>184
make_nvp("CString", s)
とするか、
タグそのものを使いたくないならtextでシリアライズする
186:デフォルトの名無しさん
09/10/02 17:36:11
要素名を空文字列にしたら空の要素タグが出力されるのは当然だろ。
いったい何がやりたいの?
187:デフォルトの名無しさん
09/10/02 17:57:25
>>186
例えば
std::string name;
をシリアライズするとき
ar & make_nvp("name", name);
ってするよね。
その結果として
<name>山田太郎</name>
を期待する訳で
<name><string>山田太郎</string></name>
がでてきたら嫌でしょ?って話。
オブジェクトのシリアライズの話でなくて型のシリアライズのカスタマイズに関する
話なの。考えもせず知ったかでレスせんでいいよ。
188:デフォルトの名無しさん
09/10/02 18:11:11
>>186
自作コンテナのシリアライズの場合
template <typename Archive, typename T>
void save(Archive& ar, MyList<T> const& obj, unsigned ver)
{
std::vector<T> const v(obj.begin(), obj.end());
ar & make_nvp("myList", v);
}
だと
<strudents>
<myList>
<count>2</count><item>...</item><item>...</item>
</myList>
</strudents>
となるから
template <typename Archive, typename T>
void save(Archive& ar, MyList<T> const& obj, unsigned ver)
{
boost::serialization::stl::save_collection(ar, obj);
}
とやるの。すると下のようになる。理解できただろ?
<strudents>
<count>2</count><item>...</item><item>...</item>
</strudents>
189:デフォルトの名無しさん
09/10/02 19:13:56
ところで、CStringならstd::stringよりstd::basic_string<TCHAR>のほうがいい気がする。
時と場合にもよるけど。
190:デフォルトの名無しさん
09/10/02 19:27:07
>>189
判りやすいだろうと思ってCStringにしたけど実際はQString(知ってる人も多いと思うけど)。
template <typename Archive>
void save(Archive& ar, QString const& obj, unsigned)
{
std::string const buf(obj.toUtf8());
ar & make_nvp("string", buf);
}
なんてしてるのだけども<string></string>が嫌だなと思うわけです。
191:デフォルトの名無しさん
09/10/02 20:44:20
更新しました。先週に引き続き今週もMathのパフォーマンスチューニングが行われています。
URLリンク(booster.x0.to)
以下更新内容の一部
[Fusion]
Fusion: resolved const correctness issue
[Spirit]
Spirit: started to add attribute transformation capabilities, new examples
Spirit: added simple token printer for parser trace output
Spirit: added bool_ generators
Spirit: added qi::bool_
[Unordered]
Try supporting reference parameters in pairs. Probably not required.
Remove the optimization for std::pair with a key reference.
[Exeption]
New function: diagnostic_information_what.
[Math]
A few more minor performance tweaks for issue #3407.
Another round of performance tweaks for issue #3408.
These should make our igamma implementation comparable in performance
to the dcdflib FORTRAN routine - at least as far as MSVC is concerned.
[Impl]
missing namespace
Refactored: use static_cast and const pointer where possible.
[Graph]
Another attempt at a CSR edges() fix
[Python]
boost/python: some Py_ssize_t replaced with boost::python::ssize_t
to restore compatibility with Python 2.3 and 2.4
[Date_time]
Refs #2213. Fixed UTC zone offset boudaries.
Refs #1861. Changed the default format for time durations
to "%-%O:%M:%S%F" instead of "%-%H:%M:%S%F".
192:デフォルトの名無しさん
09/10/03 00:00:43
rengeExはまだなのか
193:デフォルトの名無しさん
09/10/05 14:52:08
>>191
VS2005 用のは無いのか?
194:157
09/10/05 16:22:31
>>193 >>191
そうそう、お願いします。
195:デフォルトの名無しさん
09/10/05 21:38:35
progress_display プログラムコンテスト開催のお知らせ
詳細は寝て待て!
196:デフォルトの名無しさん
09/10/05 22:12:19
progress_displayネタはいい加減飽きたよ。ウンザリだ
197:デフォルトの名無しさん
09/10/05 22:32:44
>>196
じゃああぼんすれば良いじゃん。
バカなの?
198:デフォルトの名無しさん
09/10/05 22:34:36
一言いわれただけで発狂するほど自信満々のネタだったのか。
199:197
09/10/05 22:37:46
>>198
> 一言いわれただけで発狂するほど自信満々のネタだったのか。
いや俺は>>195じゃねぇけどそんなの関係ねぇ。
とにかく気にくわない単語はあぼん。
じゃないとまともに2ch見てらんねぇし。
200:デフォルトの名無しさん
09/10/05 23:17:01
いやマジでつまんないから。
あんま迷惑なことしちゃダメよ。
201:デフォルトの名無しさん
09/10/05 23:34:02
>>199
そういうお前はちゃんと有無を言わさず>>198や>>200をあぼん
しろよ。
202:デフォルトの名無しさん
09/10/06 00:08:32
>>197はツンデレなんだよ
progress_displayを愛する一人
203:デフォルトの名無しさん
09/10/06 02:40:58
あんまり話題になると、あれ?実はこれ要らないんじゃね・・・?と騒ぐやつが出てくるからな
そっとしておいてやるのが吉
204:デフォルトの名無しさん
09/10/06 08:03:15
そうそう。危うく俺も口にしかけたわ。
そんな私も、今では progress_display 童貞。
孫にあげるのは、もちろん progress_display。
なぜなら、彼もまた特別な存在だからです。
205:195
09/10/06 08:09:35
なんでこんなに荒れてんだw
206:デフォルトの名無しさん
09/10/06 14:20:09
>>197の言うとおり、ここは2chなんだから
>>197みたいなキチガイもたまには湧くさ
207:デフォルトの名無しさん
09/10/07 20:06:48
すみません。教えて下さい。
boost/multi_array.hppとboost/numeric/ublas/matrix.hppを比較して
単純な2次元の配列演算で、どちらが速い遅いというのはありますでしょうか?
#include <boost/multi_array.hpp>
#include <boost/numeric/ublas/matrix.hpp>
int n = 10; int m = 10;
boost::multi_array<double, 2> myArray(boost::extents[n][m]);
boost::numeric::ublas::matrix<double> myArray2(n, m, n*m);
パフォーマンス上の損がないようなら、(とりあえずblasのルーチンを使わない場合でも)
全ての2次元配列をboost::numeric::ublas::matrixで置き換えてしまおうと考えているのですが。
よろしくお願いします。
208:デフォルトの名無しさん
09/10/07 21:16:58
自分で検証コード組んで確かめろよ
5分とかからんだろうが
209:デフォルトの名無しさん
09/10/09 00:46:30
VS 2003.NETからVS 2008 Express に変えて
boostも2008用のにしようとインストーラーDLしようとしたら
ログイン式になってるな
なぜ?
210:デフォルトの名無しさん
09/10/09 02:52:24
BoostProに金を落とさないユーザは切り捨てることにしたのかもわからんね
公式から落としてコンパイルするか、
URLリンク(booster.x0.to) のスナップショットを使うべし
211:デフォルトの名無しさん
09/10/09 02:54:41
. 1. HTML で検索した結果 1〜10件目 / 約5,040,000,000件
. 2. PHP で検索した結果 1〜10件目 / 約2,970,000,000件
. 3. Java...... で検索した結果 1〜10件目 / 約 835,000,000件
. 4. Forth. で検索した結果 1〜10件目 / 約 323,000,000件
. 5. Ruby.. で検索した結果 1〜10件目 / 約 275,000,000件
. 6. perl..... で検索した結果 1〜10件目 / 約 245,000,000件
. 7. Python... で検索した結果 1〜10件目 / 約 204,000,000件
. 8. pascal... で検索した結果 1〜10件目 / 約 170,000,000件
. 9. Delphi で検索した結果 1〜10件目 / 約 127,000,000件
10. VisualBasic...で検索した結果 1〜10件目 / 約 121,000,000件
11. lisp... で検索した結果 1〜10件目 / 約. 26,700,000件
12. fortran で検索した結果 1〜10件目 / 約. 21,300,000件
13. COBOL で検索した結果 1〜10件目 / 約. 18,500,000件
14. HSP で検索した結果 1〜10件目 / 約. 12,300,000件
15. FreeBasic.. で検索した結果 1〜10件目 / 約 6,320,000件
16. Tcl/Tk. で検索した結果 1〜10件目 / 約 4,940,000件
17. QBasic で検索した結果 1〜10件目 / 約 4,190,000件
18. VisualC.... で検索した結果 1〜10件目 / 約 1,360,000件
19. DarkBASIC. で検索した結果 1〜10件目 / 約 1,320,000件
20. BasicStudio で検索した結果 1〜10件目 / 約 304,000件
21. N88basic. で検索した結果 1〜10件目 / 約 215,000件
22. f-basic で検索した結果 1〜10件目 / 約 109,000件
23. ActiveBasic で検索した結果 1〜10件目 / 約. 89,800件
24. 99BASIC.... で検索した結果 1〜10件目 / 約. 11,500件
3Dprogramming で検索した結果 1〜10件目 / 約794,000件
2Dprogramming で検索した結果 1〜10件目 / 約. 57,400件
intel で検索した結果 1〜10件目 / 約729,000,000件
amd で検索した結果 1〜10件目 / 約355,000,000件
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5030日前に更新/199 KB
担当:undef