Boost総合スレ part8at TECH
Boost総合スレ part8 - 暇つぶし2ch1:デフォルトの名無しさん
09/08/28 16:53:36
過去スレ
part 7 スレリンク(tech板)
part 6 スレリンク(tech板)
part 5 スレリンク(tech板)
part 4 スレリンク(tech板)
part 3 スレリンク(tech板)
part 2 スレリンク(tech板)
part 1 スレリンク(tech板)

■関連サイト■
Boost C++ Libraries
URLリンク(www.boost.org)

Boost 翻訳プロジェクト
URLリンク(boost.cppll.jp)

Let's Boost
URLリンク(www.kmonos.net)

boost info
URLリンク(shinh.skr.jp)

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の記事作っといたから。

URLリンク(ja.uncyclopedia.info)

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件

212:デフォルトの名無しさん
09/10/09 08:29:08
"C++" の検索結果 約 62,700,000 件中 1 - 100 件目

213:デフォルトの名無しさん
09/10/09 08:31:44
BASIC で検索した結果 1~10件目 / 約1,580,000,000件

214:デフォルトの名無しさん
09/10/09 12:15:53
progress_display の検索結果 約 531 件中 1 - 10 件目

215:デフォルトの名無しさん
09/10/09 12:37:05
>214
さすがboostを代表するライブラリだ
ハンパねぇーな

216:デフォルトの名無しさん
09/10/09 12:38:18
"Objective-C" の検索結果 約 2,730,000 件中 1 - 10 件目 (0.18 秒)

217:デフォルトの名無しさん
09/10/09 18:03:19
FORTHが健闘してるなあ

218:デフォルトの名無しさん
09/10/10 00:16:42
>209
まじかよ、と思ったらすでにアカウント登録済みだった。あれぇ?

219:デフォルトの名無しさん
09/10/10 17:49:13
BOOST1.41、コンパイルにめっちゃくちゃ時間がかかる・・・
1.40の倍以上はかかってる そんなに膨らんだっけ

220:デフォルトの名無しさん
09/10/10 17:57:32
URLリンク(booster.x0.to) 落としたらですけど
要求されるlib名が1.41とか付いてるんですが。
これは最初から付いてるやつを格納出来ないんですか。
自分でリネームするんですか

221:デフォルトの名無しさん
09/10/10 19:39:18
更新しました。このところ、今迄あまり動きの無かったMathやuBLASといった数式関連に手が入っています。
亦、layout=taggedでリンクエラーが発生しておりましたのでlayout=versionedに戻しました。
尚、バージョン無しのファイルは必要無い様に思えますのでバージョン無しファイル生成バッチは同梱せずに暫く様子を見ます。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: fixed a problem in Qi real_impl preventing to use an integral type as an attribute to a floating point parser.
Spirit: restructured customization points, added qi::attr_cast, added phoenix expression support for Karma attributes
Spirit: disabled Phoenix attributes for V2.1, adjusted tests
[Numeric]
see #3449: introduce new free functions to access matrix/vector properties (Incomplete)
[Date_time]
Refs #3470. Modified documentation for c_time functions to reflect the actual behavior.
[Unordered]
Make sure inserting from a range of types other than the value type is better tested.
[Fusion]
BOOST_FUSION_ADAPT_CLASS
[Math]
Fix erf calculation limits.
Added more performance tests along with comparisons to the DCDFLIB.
Change iteration limits to use get_epsilon().
Merge changes from Sandbox.
[Fusion]
Fusion: fixing mismatch in default parameter to nview
[Syatem]
System: minor code clean up
[Signals2]
Added support for tracking of objects owned by non-boost
shared_ptr. No documentation yet.
[Graph]
Fixed duplicate base class problem
Removed old parameters from test code

222:デフォルトの名無しさん
09/10/10 19:42:21
亦、layout=taggedからlayout=versionedへの再変更に伴い、
how_to_build.txtとlibs_for_build_boost.rar内readme.txtも修正致しました。

>>193-194
VS2010のExpress Editionがリリースされた場合にそちらに移行する予定はありますが、
VS2005用をビルドする予定は今のところありません。

223:デフォルトの名無しさん
09/10/11 00:54:21
>>219
そこまで重くなったかどうかわからんが
Warningの数が増えた 31万個(前は20万)

224:デフォルトの名無しさん
09/10/11 01:37:08
警告は無効化しないとコンパイルに死ぬほど時間かかる

225:220
09/10/11 01:59:23
>>221
libboost_regex-vc90-mt-s-1_41.lib
という存在してないものを要求されるようになりました。
前回のやつは、リネームしたら通ったのですが
今回はリネームするものがありません。
-s-付きがないです。
前のやつを残してほしかったです。消してしまいました。

226:デフォルトの名無しさん
09/10/11 09:19:46
RegexはICUサポートが有効の場合、仕様上link=static, runtime-link=staticのライブラリは作成されません。
代替としてICUサポート無しでビルドしたlink=static, runtime-link=staticのRegexライブラリを追加してrarファイルを差し替えました。
今後のビルドでも同様の措置を採ります。
URLリンク(booster.x0.to)

227:デフォルトの名無しさん
09/10/11 12:10:58
VCの場合、runtime-link=staticは地雷だぞ。

228:デフォルトの名無しさん
09/10/11 13:01:01
地雷とは? スタティックリンクってDLLなしでいいってやつでしょ。

229:デフォルトの名無しさん
09/10/11 14:06:44
staticlinkだと、libをコンパイルした環境と、そのlibを使ったexeをコンパイルする
時の環境でruntimeが異なったときに、面倒なことになる。
ってやつのことかな。

230:デフォルトの名無しさん
09/10/11 18:40:05
gccでも同じことが起こるのではないの?

231:デフォルトの名無しさん
09/10/11 18:44:39
gccは存在自体が地雷。

232:デフォルトの名無しさん
09/10/11 19:46:11
gccのすばらしさを分からないヤツは素人

って言ってみると何人つれるかな?

233:bcc5.5
09/10/11 20:50:30
呼んだ?

234:デフォルトの名無しさん
09/10/11 20:53:10
おまえのためにおかしなワークアラウンド書くのはうんざりです

235:やんやん ◆yanyan72E.
09/10/11 21:00:44
iccマンセー

236:デフォルトの名無しさん
09/10/11 21:03:38
>>235
BOOST_AUTO使える?

237:やんやん ◆yanyan72E.
09/10/11 21:31:33
>>235
BOOST_AUTOがどういうもんだかよく理解していないが、
URLリンク(www.kmonos.net)
ググって出てきたこのコードはコンパイルできてちゃんと動いたよ。

238:デフォルトの名無しさん
09/10/11 21:47:38
Open WatcomとかDigital Marsのことも忘れないでください
後者はD言語やってりゃ知ってるだろうけど

239:デフォルトの名無しさん
09/10/11 21:50:03
>>237
これがiccだとコンパイルできない。
iccでコンパイルするためにはBOOST_TYPEOF_REGISTER_TYPEで型を登録しなくっちゃならないんで面倒だなっと思ってたり。
c++0xオプション入れればautoが使えるからまあいいかとか思ってる。

#include <vector>
#include <boost/typeof/typeof.hpp>

int _tmain(int argc, _TCHAR* argv[])
{
std::vector<int> a;

BOOST_AUTO(k,a.begin());
return 0;
}


240:デフォルトの名無しさん
09/10/11 22:33:57
C4819「ケケ…」
C4996「ケケケ…」
俺「何だきさまらあっ!?」

ぶっちゃけこの2つのエラーはBoostの中でdisableにするべき

241:デフォルトの名無しさん
09/10/12 00:19:30
4819だけはプロジェクト全体で無効にしてるわ

242:デフォルトの名無しさん
09/10/12 11:53:48
URLリンク(cpp-next.com)
なんか気になる話が。

243:デフォルトの名無しさん
09/10/13 20:14:48
FUNC("hogehoge");
と書いたら
hogehoge
と展開されるマクロってどう書くの?
( " を取りたい)

244:デフォルトの名無しさん
09/10/13 20:21:23
FUNC(hogehoge) hogehoge=100
など。

245:デフォルトの名無しさん
09/10/13 21:02:42
>>243
無理だろ。

>>244
何を言っているの?

246:デフォルトの名無しさん
09/10/13 21:03:15
つけなければいい

247:デフォルトの名無しさん
09/10/14 06:50:29
ぽかーん

248:デフォルトの名無しさん
09/10/15 19:16:47
これ直す方法ないですか。警告外し以外で。

warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。

249:デフォルトの名無しさん
09/10/15 19:33:58
A. 日本語を勉強する
B. 母国語でメッセージを表示する開発環境を使う
C. より適切な進路・職業を考える

どれでもお好きな方法を

250:デフォルトの名無しさん
09/10/15 19:43:44
>>249
彼にはCが良いと思うよ。

251:デフォルトの名無しさん
09/10/15 20:32:58
>>248
ライブラリのヘッダーでたまに出るけど、保存しなければ良いんじゃないか?


252:デフォルトの名無しさん
09/10/15 20:53:41
そもそも「どうすればいいか」は当該ヘッダに書いてあると思うんだが

253:デフォルトの名無しさん
09/10/16 01:41:33
コンパイラがEUCだと認識するのがだめな気がする。UTF8として読み込ませる方法があれぱいいけど

254:デフォルトの名無しさん
09/10/16 02:27:31
何で警告外しちゃ駄目なんだろう

#pragma warning(push)
#pragma warning(disable:4819)
#include <hoge>
#pragma warning(pop)

これに何の不満があるんだ

255:デフォルトの名無しさん
09/10/16 02:33:19
警告はヘッダが悪いのか、コンパイラが悪いのか。

256:デフォルトの名無しさん
09/10/16 02:42:52
文字コードというものの仕様が悪い

257:デフォルトの名無しさん
09/10/16 02:43:51
相性が悪い

258:デフォルトの名無しさん
09/10/16 02:48:52
どのヘッダをどのコンパイラに突っ込んで警告が出てるかの情報も一切なしに
何が悪いのかなんて分かるわけが無い

259:デフォルトの名無しさん
09/10/16 05:07:38
VC2008でboostやると沢山コードの警告出る。

260:253
09/10/16 05:09:16
間違えた。コード932はSJISの拡張だった。

261:デフォルトの名無しさん
09/10/16 05:15:21
英語版OSに英語版VC入れてコンパイルするか、
ソースを全部BOM付きUTF-8で保存し直せば警告は無くなるんじゃないかな

262:デフォルトの名無しさん
09/10/16 05:25:45
boostproの1.38.0を入れたまましばらく追従してないけど、とりあえずVC9で
警告うるさめにして使ってるけど何も言われないな

263:デフォルトの名無しさん
09/10/16 05:27:04
つーかどのソースで警告出るか、そのソースが実際どのコードで保存されてるか
くらいの情報は出せないのか

264:デフォルトの名無しさん
09/10/16 05:34:54

Yahoo!プログラミング言語検索ランキング(今回2009/10/16、前回2009/10/12)

《一般カテゴリ》
. 1(. 1) HTML.....    約5,030,000,000件(約5,020,000,000件)+
. 2(. 2) PHP...      約2,980,000,000件(約3,000,000,000件)--
. 3(--) BASIC..      約1,580,000,000件(....------------- )0
. 4(. 3) JAVA..      約 822,000,000件(約 832,000,000件)--
. 5(--) CGI.        約 551,000,000件(....------------- )0
. 6(--) C言語(*1).   約 399,000,000件(....------------- )0 (*1)C/C++とC#の検索件数の合計
. 7(. 4) FORTH..    約 323,000,000件(約 324,000,000件)-
. 8(. 6) PERL..     約 245,000,000件(約 245,000,000件)0
. 9(. 7) PYTHON..   約 213,000,000件(約 209,000,000件)++
10(. 8) PASCAL..   約 168,000,000件(約 168,000,000件)0
11(. 9) DELPHI.    約 128,000,000件(約 128,000,000件)0
12(11) LISP      約.  26,000,000件(約.  26,600,000件)--
13(12) FORTRAN.   約.  21,200,000件(約.  21,300,000件)-
14(13) COBOL.....   約.  16,800,000件(約.  17,100,000件)--
15(--) PROLOG    約.  13,800,000件(....------------- )0
16(14) HSP        約.  12,300,000件(約.  12,400,000件)-

《BASIC言語カテゴリ》
. 1(--) VisualBasic...  約 120,000,000件(約 121,000,000件)-
. 2(--) Hu-BASIC..  約.  15,000,000件(....------------- )0
. 3(--) QBASIC..    約   4,140,000件(約   4,160,000件)--
. 4(--) MSX-BASIC.....約   1,430,000件(....------------- )0
. 5(--) DarkBASIC .  約   1,310,000件(約   1,330,000件)--
. 6(--) CBM-BASIC. 約    944,000件(....------------- )0
. 7(--) BasicStudio   約    303,000件(約    302,000件)+
. 8(--) N88BASIC..  約    219,000件(約    218,000件)+
. 9(--) X-BASIC...   約.     40,400件(....------------- )0
10(--) 99BASIC....   約.     11,400件(約.     11,300件)+

265:デフォルトの名無しさん
09/10/16 10:41:37
>>264
大物が抜けてるぞ

JavaScript で検索した結果 1~10件目 / 約2,830,000,000件 - 0.32秒

266:デフォルトの名無しさん
09/10/16 11:14:16
プログラミング言語≠スクリプト

267:デフォルトの名無しさん
09/10/16 11:29:37
CとC#って全然別物じゃねえかw
むしろJavaのほうが近いくらいなのに……

あとこれって 一般的な単語の basic や python って除外してるの?
できないと思うけど

268:デフォルトの名無しさん
09/10/16 13:15:09
コピペねたに反応すんなぼけ

269:デフォルトの名無しさん
09/10/16 14:49:44
文字コード警告の件だが、全世界で使うものなんだからせめてASCII限定にするとかできないのか
というわけでコードエラーを発生させている作者名(確か元凶そこだよね)が悪いということにしとく

270:デフォルトの名無しさん
09/10/16 18:53:34
更新しました。何となく1.41リリースが近い様な気がします。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: fixing re-initialization problem for optional attributes
Spirit: improved fix for re-initialization of optionals, added tests
Spirit: added missing specialization to transform_attribute. Fixed qi::subrule to use this
Spirit: updating examples and tests
Spirit: removing remnants of safe_bool
[Fusion]
Spirit: improved fix for re-initialization of optionals, added tests
[Graph]
Fixed bugs in F-R layout
Fixed numlocalverts bug
Changed boost::get() call to get() to reflect new distributed property map namespace (boost::parallel)
[Serialization]
Address complaints for Inspect
fix memory leaks
Fix problem with multiple declaration of void_cast_register
[Exeption]
Added errinfo_nested_exception typedef. Fixed minor documentation error.
[Signals2]
Work around missing include in Boost.Variant headers
Include <functional>, for std::greater.
[Interprocess]
Fixes for 1.41
[Unordered]
Correct macro checks for initializer lists.
[Graph_parallel]
Added edges_are_sorted tag to distributed CSR graph ctor
since passing a sorted iterator range to the unsorted ctor
seems to produce a different graph than passing a sorted iterator range to the sorted ctor.

271:デフォルトの名無しさん
09/10/16 19:30:21
うんこブー!(床に落ちて)スト!

272:デフォルトの名無しさん
09/10/16 22:59:58
javaとか時代遅れだろw

273:デフォルトの名無しさん
09/10/17 08:35:03
>270
なんとなくっていうか予定だとこう。
 10/18 1.41.0 Beta
 11/01 1.41.0 release
URLリンク(www.boost.org)
ML でもリリースノートの更新依頼が出てた。
現状だと Property Tree が新規、Multi-index、Spirit、Wave が更新になってる。

274:デフォルトの名無しさん
09/10/17 08:44:43
有難うございます。
1.39-1.40間はかなり変更が激しかったですが、
1.40-1.41間はfixやドキュメント整備が中心の様ですね。

275:デフォルトの名無しさん
09/10/17 15:27:53
Boost 勉強会
URLリンク(atnd.org)

276:デフォルトの名無しさん
09/10/17 15:39:51
開場がGREEってだけで行く気無くす
それより秀和の本の1.40か1.41対応第3版出してくれ
2版がまだ余ってるらしいので出せるかどうか結構微妙ではあるが

277:デフォルトの名無しさん
09/10/17 15:43:19
ああ、でもC++0xというかVC2010が出てからの方がいいか
あっちに結構吸収されたライブラリがあるから

278:デフォルトの名無しさん
09/10/18 11:08:56
>>276
boostのドキュメントを素直に翻訳したものを出してほしい

279:デフォルトの名無しさん
09/10/18 19:58:35
boostのドキュメントのPDF版見てみりゃわかるけど、リファレンス部含めたらasioだけで969ページある
全部のドキュメント訳したら何千ページにもなるだろうからコミュニティベースで訳す他無いんじゃないか
最も、今までその試みが何度失敗したか分からんがね

第3版にrange_exが間に合うと良いなあ

280:デフォルトの名無しさん
09/10/18 22:07:45
つかえねーやつほど
道具のせいにする
道具にも馬鹿にされて自己嫌悪に陥るな

281:デフォルトの名無しさん
09/10/19 00:01:26
valut から property tree 落としてきて使ってみた。
これ面白い。
INI parser しか試してないけど、レジストリも触れちゃうみたい。

282:デフォルトの名無しさん
09/10/21 13:09:36
> boostのドキュメントのPDF版
その存在を始めて知った!
HTMLしかないと思っていたよ

283:デフォルトの名無しさん
09/10/21 22:03:52
わたしも……(´・ω・`)

284:デフォルトの名無しさん
09/10/22 09:42:09
boostは便利だなぁ~使えば使うほど実感するよ
挙動がよくわからなかったりマニュアルの英語が何言っているか理解できないときは
ヘッダを読むけどコレがとても為になるですよ

285:デフォルトの名無しさん
09/10/22 09:45:16
$BOOST_ROOT/libs/*/test/*あたりのコードも参考になった

286:デフォルトの名無しさん
09/10/23 11:15:11
CMakeのあつかいが変わった
めんどくせー

287:デフォルトの名無しさん
09/10/23 21:19:15
>>286
CMake関連のファイルが大量に削除されたり変更されたりしていたので、
試しにプロジェクトを作成しようとしたらエラーになってしまったのですが
ビルド可能なのですか?

288:デフォルトの名無しさん
09/10/23 22:00:59
更新しました。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: fixing endianess/truncation problem in Karma|s output iterator
Spirit: fixing tests for big endian binary generator
Spirit: removed undefined behavior in grammar initialization
[Interprocess]
Fixes for 1.41
[Intrusive]
Fixes for 1.41
[Graph]
Removed assertions that may depend on FP precision.
[Serialization]
add non-polymorphic pointer test
[Pool]
Allow zero-sized blocks to be allocated by malloc_n. Fixes #386
[Unordered]
Use normal emplace implementation for emplace_hint and insert with hint.
Fix allocator for construct from initializer list.
[Random]
Disable some warnings for msvc. Fixes #3532
[Math]
Improve ibeta error handling, and add new tests.
[Detail]
fix for fix in r35591: sometimes __hppa is on PA-RISC but __hpux isn't Fixes ticket #3537
[Signals2]
Qualify addressof call, refs #3534.
[Python]
Fix for #3490, parameter depends on python.
[Thread]
Added futures to boost.thread

289:デフォルトの名無しさん
09/10/24 13:15:03

URLリンク(www.boost.org)
にあるwaveのサンプルプログラムの、while(first != last) のiteratorの比較で
boost::wave::preprocess_exception例外投げるんだけど、なんで?

context の設定だけ
ctx.add_macro_definition("_WIN32");
ctx.add_macro_definition("_MSC_VER=1500");
ctx.set_language(boost::wave::language_support(boost::wave::support_cpp));
ctx.add_sysinclude_path("E:\\lib\\boost\\boost_1_39");
ctx.add_sysinclude_path("C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include");
な風にしたけど・・・


290:デフォルトの名無しさん
09/10/24 16:46:27
>>287
別サイトから、CMakeの分だけダウンロードするようになった


291:デフォルトの名無しさん
09/10/24 17:07:41
cmakeみたいなゴミ使わずにbjam使いましょう

292:デフォルトの名無しさん
09/10/24 17:11:27
bjamとかカスだし。

293:デフォルトの名無しさん
09/10/24 17:58:44
ゴミクズじゃないビルドシステムなど無い

294:デフォルトの名無しさん
09/10/24 18:01:27
bjamなんてドキュメント読めば2秒で理解できるぞ

295:デフォルトの名無しさん
09/10/24 20:16:13
ドキュメント読むのが億劫で読んでいなくてごめんなさい。

296:デフォルトの名無しさん
09/10/24 20:26:11
事実上CMake対応は放棄か。

297:デフォルトの名無しさん
09/10/24 20:48:02
なんでCMakeでビルドしたがるの?
bjamがあるじゃん。

Boostのビルドにおいて
CMakeがbjamを上回ることってなんかあるの?

特に>>292


298:デフォルトの名無しさん
09/10/24 21:13:38
>>294
2秒でドキュメントは読めない

299:デフォルトの名無しさん
09/10/24 21:18:03
ドキュメントを隅々まで読み終えてから、もう2秒必要ということなんだろう。

300:デフォルトの名無しさん
09/10/24 21:21:11
えっくすこおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおど

301:デフォルトの名無しさん
09/10/24 21:22:05
CMAKEなんてドキュメント読まなくても理解できたぞ。
ところで、なんで>>296みたいなアホがいるんだ。
ほんとに質が低いなこのスレは。

302:デフォルトの名無しさん
09/10/24 21:36:33
自分で書くのならbjamよりcmakeの方が楽だった
y-hamigakiさんの書いた資料のおかげというのもあるけど
CMakeはprecompiled headerを使うのだけでも一苦労、
flymake用のsyntax check用の高速にビルドできるタスクを定義するのは並大抵のもんじゃないときた
cmake .とかするだけの使い方するなら問題ないけどな

303:デフォルトの名無しさん
09/10/24 22:19:51
>>299
なるほど。
なら可能だ

304:デフォルトの名無しさん
09/10/25 00:26:41
cmakeは使ったことないけど、bjam(+boost-build)はそこそこ対応コンパイラが多いのと、
自動的にdebug/releaseビルドのobjファイルを別場所に配置してくれるので切り替えが楽という利点があるな。
逆に問題はドキュメントが異様に少ないこと。
でもビルドに必要な大抵のことは(きちんとドキュメント化されているかは別として)できるかな。

305:デフォルトの名無しさん
09/10/27 05:02:38
Check failed in file /usr/include/boost/numeric/ublas/vector_expression.hpp at line 548:
size1 == size2
terminate called after throwing an instance of 'boost::numeric::ublas::bad_argument'
what(): bad argument
Aborted

このエラーの対処法教えてください

306:デフォルトの名無しさん
09/10/27 07:00:59
>>305 URLリンク(osdir.com)

307:デフォルトの名無しさん
09/10/27 11:27:08
>>306
ありがとうございます
参考にしてみます

308:デフォルトの名無しさん
09/10/28 23:41:26
bool pred(int n) { return n; }

struct hoge { int foo() { return 0; } };
struct bar { hoge hoge_; hoge fuga() { return hoge_; } };

std::vector<bar> bars;

std::count_if(bars.begin(), bars.end(), pred(bind(&bar::fuga, _1)().foo()));

bars の各インスタンス _1 のうち、pref(_1.fuga().foo()) を満たす物の個数を数えたくて
上記 std::count_if のように boost.lambda を用いて呼び出してみたのですが,
コンパイルエラーとなってしまいました.

上記のような目的を達成するにはどうすればよいのでしょうか?
C++ 0x 対応であればなんとか出来そうな気がしますが、環境が VC2008 なので使え
ません.lambda や bind で書けるのでしょうか?詳しい人教えて下さい・・・

309:デフォルトの名無しさん
09/10/29 00:03:07
>308
これでどないでしょ。

bool pred(int n) { return n; }

// 恐らく一時オブジェクトに対する参照が必要になるので const が必要
struct hoge { int foo() const { return 0; } };
struct bar { hoge hoge_; hoge fuga() { return hoge_; } };

std::count_if(bars.begin(), bars.end(), bind(pred, bind(&hoge::foo, bind(&bar::fuga, _1))));

310:デフォルトの名無しさん
09/10/29 00:16:06
こうなると名にやってんのか逆に分かりにくいな

311:デフォルトの名無しさん
09/10/29 06:55:58
#define _ bind
std::count_if(bars.begin(), bars.end(),
    _(pred,
                _(&hoge::foo,
            _(&bar::fuga,
        _1))));
#undef _

312: [―{}@{}@{}-] デフォルトの名無しさん
09/10/29 14:14:43
というか0xならもっと分かりやすく書けるの?

313:デフォルトの名無しさん
09/10/29 14:22:38
std::count_if(bars.begin(), bars.end(),
    [] (bar& x) -> bool { return pred(x.fuga().foo()); })

314:デフォルトの名無しさん
09/10/29 14:24:00
あ、戻り値の型はコンパイラにまかせてもいいんだったっけ。

std::count_if(bars.begin(), bars.end(),
    [] (bar& x) { return pred(x.fuga().foo()); })

315:デフォルトの名無しさん
09/10/30 22:23:22
更新しました。今週はsmart_ptr, thread, regex, xpressiveといった割と使われていそうなライブラリに
fixや仕様変更が入っています。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: more work on attribute traits,
allowing optional for alternatives, maxwidth supports extracting overhang
[Fusion]
fix for #2355: discrepancy between std::accumulate and fusion::accumulate
[Regex]
Tighten up error handling and checking.
[Unordered]
Remove 'grouped' from hash_table as it isn't used and is a bit confusing.
[Circular_buffer]
circular_buffer: added erase_begin and erase_end methods

316:デフォルトの名無しさん
09/10/30 22:24:35
Fix for bug #2067 --- use shared_mutex for thread_group rather than a simple mutex
Fix for move assignment of unique_lock if rvalue refs supported
More fixes for compilers with rvalue ref support
[Xpressive]
nested results uses a custom list type that allows incomplete types,
does no dynamic allocation in the default constructor,
and has a guarnteed O(1) splice; fixes #3278
[Smart_ptr]
Renamed enable_shared_from_this2 to enable_shared_from_raw and
added shared_from_raw free function. These changes fix the pointer
value in shared_ptr which were obtained before an external shared_ptr has
taken ownership of the object (for example when a shared_ptr to
this is obtained in an object's constructor).
[Numeric]
see #3501: Reusing concepts from different compile units yields multiple defined symbols (Incomplete)
* removed inlines that were added with the last commit
* added anonymous namespace to make functions local to compilation unit

317:デフォルトの名無しさん
09/10/30 22:27:06
すみません、>>316はミスです。315の後こちらを続けて下さい

[Thread]
Fix for bug #2067 --- use shared_mutex for thread_group rather than a simple mutex
Fix for move assignment of unique_lock if rvalue refs supported
More fixes for compilers with rvalue ref support
[Xpressive]
nested results uses a custom list type that allows incomplete types,
does no dynamic allocation in the default constructor,
and has a guarnteed O(1) splice; fixes #3278
[Smart_ptr]
Renamed enable_shared_from_this2 to enable_shared_from_raw and
added shared_from_raw free function. These changes fix the pointer
value in shared_ptr which were obtained before an external shared_ptr has
taken ownership of the object (for example when a shared_ptr to
this is obtained in an object's constructor).
[Numeric]
see #3501: Reusing concepts from different compile units yields multiple defined symbols (Incomplete)
* removed inlines that were added with the last commit
* added anonymous namespace to make functions local to compilation unit

318:デフォルトの名無しさん
09/11/06 22:04:19
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: fixing lex::tokenize_and_parse functions
Fix. Disallow alpha or underscore after "int"
Spirit: fixing usage of plain functions as lexer semantic actions
Spirit: replaced long long by boost::long_long_type
[Ptr_container]
URLリンク(svn.boost.org)
[Fusion]
Fusion: adding a missing 'const'
associative_sequence_tag -> associative_tag
[Regex]
Added support for function objects as well as strings when formatting.
[Program_options]
Fix 'ambiguous else clause' compiler warning. Fixes #3556.
Put description to next line if we'd overflow otherwise. Fixes #689.
Use extra parens to silence warnings re &&/|| on same level.
[Xpressive]
fix infinite loop with some uses of \Q...\E quotemeta, fixes #3586
[Math]
remove surplus const-qualifiers.
[Wave]
Wave: added missing header file and special handling for stlport
[Smart_ptr]
Added weak_from_raw(), for use in conjunction with
enable_shared_from_raw base class.

亦、how_to_build.txt及びlibs_for_build_boost.rar内bjam.exe, readme.txtも併せて更新致しました。
それから、公式でのリリース版バイナリの配布が開始されました。
同じくBoost 1.41 betaの配布も始まっています。
URLリンク(sourceforge.net)

319:デフォルトの名無しさん
09/11/07 05:42:37
>>318

320:デフォルトの名無しさん
09/11/10 10:06:18
template<class F>
struct is_lambda_impl
{
static const bool value = false;
};
template<class F, class A0>
struct is_lambda_impl<boost::lambda::lambda_functor<F>(A0)>
: public boost::lambda::lambda_functor<F>::template sig<boost::lambda::tuple<boost::lambda::lambda_functor<F>, A0> >
{
static const bool value = true;
};
template<class F, class A0, class A1>
struct is_lambda_impl<boost::lambda::lambda_functor<F> (A0, A1)>
: public boost::lambda::lambda_functor<F>::template sig<boost::lambda::tuple<boost::lambda::lambda_functor<F>, A0, A1> >
{
static const bool value = true;
};
template<class F>
bool is_lambda_(F)
{
return is_lambda_impl<F(????)>::value;
}
int main()
{
std::cout << is_lambda_((boost::lambda::_1 * 2)) << "\n";
std::cout << is_lambda_(std::plus<int>()) << "\n";
}

321:デフォルトの名無しさん
09/11/10 10:07:50
お遊びですが・・・
>>320 のプログラムは、lambdaか否かを判断するmeta function を作ろうとした
のですが、???? の部分で困っています。

boost::lambda::_1 * 2 とある時、引数の型が知りたい。
でも、これは無理ですよね。

簡単言うと、is_lambda_implをlambda式に応じて呼び分けしたいのです。
何かいい案ないですか?

322:デフォルトの名無しさん
09/11/10 10:14:14
>>320
is_lambda_impl<F>::value じゃないの?
そうじゃなければ何がしたいのかよくわからん。

323:デフォルトの名無しさん
09/11/10 10:26:39
>>322
それじゃ駄目ポ。
template<class F>
struct is_lambda_impl
{
static const bool value = false;
};
にいっちゃいます。

324:デフォルトの名無しさん
09/11/10 10:29:47
>>323
なら ???? の部分じゃなくて特殊化ができてないんじゃないの?

325:デフォルトの名無しさん
09/11/10 10:34:21
>>324
あんまり、そこに拘る必要はないです。
lambdaか否かを判断するmeta function が作れればおk。

326:デフォルトの名無しさん
09/11/10 10:40:42
>>324
F(????)としてるのは、F(int)とすれば
template<class F, class A0>
struct is_lambda_impl<boost::lambda::lambda_functor<F>(A0)>
が選択されるからです。

int 部分にはboost::lambda::_1の型か何か別のものが入ると思う。
_1 や _2 の数によって F(A0) F(A0, A1) の様な形になると思う。

327:デフォルトの名無しさん
09/11/10 11:00:54
こゆこと? (動作確認してないけど)

template<template <class f> class T, class F>
bool is_lambda_(T<F>)
{
return is_lambda_impl<T<F> >::value;
}

template<template <class f, class a0> class T, class F, class A0>
bool is_lambda_(T<F, A0>)
{
return is_lambda_impl<T<F, A0> >::value;
}

template<template <class f, class a0, class a1> class T, class F, class A0, class A1>
bool is_lambda_(T<F, A0, A1>)
{
return is_lambda_impl<T<F, A0, A1> >::value;
}

328:デフォルトの名無しさん
09/11/10 11:01:01
>>325
まずは、何か lambda expression だけの特性を探すことだね。

unlambda してみて違う型が返ってくるようなら true になる関数とか?

329:デフォルトの名無しさん
09/11/10 11:23:13
>>328
unlambdaすると false になります。

330:デフォルトの名無しさん
09/11/10 20:24:31
>>327
駄目ポ。

template<template <class f> class T, class F>
bool is_lambda_(T<F>)
全て↑が選択されて、falseになる

331:デフォルトの名無しさん
09/11/11 01:34:45
>>328
遊びだとか実装方法は問わないとか言ってるから、 unlambda() のソースから
扱いを分けてるところパクってきたほうが早そう。

332:デフォルトの名無しさん
09/11/11 11:41:35
できた。でもg++でコンパイル通らないorz
URLリンク(codepad.org)

333:デフォルトの名無しさん
09/11/11 17:16:17
g++でもできた。単純なミスだった。
URLリンク(codepad.org)

334:デフォルトの名無しさん
09/11/13 23:53:06
更新しました。今週はコンパイル時の警告の抑制が中心の様です。
URLリンク(booster.x0.to)
以下更新内容の一部
[Spirit]
Spirit: fixing bug in alternatives taking optionals
Spirit: started to integrate re2c style code generator for lexer
[Regex]
Improved error messages generated for thrown exceptions.
[Program_options]
Fix wordwrapping in presense of default parameters.
Don't strip quotes from values.
[Smart_ptr]
Fixed access to enable_shared_from_raw::weak_this_ when
BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined.
[Unordered]
Change unordered move tests to be more lenient on compilers without NRVO.
[System]
System: Correct too_many_symbolic_link_levels misspelling. Fix #3559.

335:デフォルトの名無しさん
09/11/13 23:53:49
[Graph]
Changed to boost::unordered_* containers instead of compiler-specific ones;
made hashed containers enabled always
[Integer]
Reverted Integer back to Release branch state - as per devel-list discussions.
[Xpressive]
do NOT copy singular iterators, fixes #3538
[Iostreams]
Allocate exceptions on the stack, not the heap. Refs #3612, by Richard Smith.
Fix unthrown exceptions. Refs #3311.
Fix mapped file errors in windows. Refs #3505.
[Exeption]
Prevent ADL from finding other dispatch functions or types. Required for #2094.
[Fusion]
avoid iterator invalidation in segmented_range, fixes #3583

亦、libs_for_build_boost.rar内bjam.exeも併せて更新致しました。

336:デフォルトの名無しさん
09/11/14 15:45:45
Boost 1.41 の
boost/function_types/detail/synthesize_impl/arity20_0.hpp
boost/function_types/detail/synthesize_impl/arity30_0.hpp
がおかしくね?
なんかソースが途中で切れたみたいになってる。
手元で確認できるかぎりでは、svn56164 で正常。
svn57242 ではおかしくなってる。


337:デフォルトの名無しさん
09/11/15 02:14:23
お前だけじゃね?
こっちはそんなことないが。

338:デフォルトの名無しさん
09/11/15 09:23:37
>>336
ちゃんとSubversion使ってる?

339:デフォルトの名無しさん
09/11/15 10:12:48
>>336
ほんとだ。
リビジョン番号 56305以降がおかしい。
stefanが更新してる

340:デフォルトの名無しさん
09/11/15 11:08:03
まったくもう、ステフったら……

341:デフォルトの名無しさん
09/11/16 16:27:52
URLリンク(codepad.org)

Boost.Propertyを使ったお試しコードを書いたのですが、Property用のメンバーをstringにすると以下の様な
エラーになるんだけど、原因分かる人いる?

error C2679: 二項演算子 '<<' : 型 'Person::_PropertyNamaeImpl_' の右オペランドを扱う演算子が見つかりません (または変換できません)。 e:\property_test.cpp 57

property_get::operator return_type()まで来ないので、ADL系の様な気がする・・・
なぜ、来ないのか分からない。

342:デフォルトの名無しさん
09/11/18 06:38:03
boost::function、bind、refの組み合わせってboost::spiritのセマンティックアクションに
渡せますが、tr1の物だとダメなようです。
これらのようにtr1とboostの物での違いの、一覧みたいなのは無いでしょうか?

343:デフォルトの名無しさん
09/11/20 23:35:32
[Spirit]
Spirit: more static lexer updates
Spirit: added new Qi example
Spirit: updating example
Don't match substrings in symbols::find.
Added Nabialek Trick Example
typeof example
Implement prefix_find.
BOOST_SPIRIT_AUTO added
Spirit: bumped version number after the release of 1.41
Spirit: fixed references to corresponding articles at Spirit site.
[Xpressive]
use boost::optional's swap instead of std::swap
[Random]
Allow arbitrary values to be used as seeds for linear_congruential,
linear_feedback_shift, and any generators that depend on them. Fixes #3516
Fix min/max problems

344:デフォルトの名無しさん
09/11/20 23:36:07
[Exeption]
Fixed unqualified use of size_t in object_hex_dump.hpp
Bug ticket 3641, also merging other fixes from the Release branch.
[Format]
copy-constructor now copies .dumped_ , fixing Ticket #3610
fixing elementary syntax error introduced in rev. 57734
[Functional]
Turn on warnings as errors for the hash tests.
[Program_options]
Add option name to a few exception classes. Fixes #3423. Patch from Sascha Ochsenknecht.
correct usage of tokenizer, memory bug, Fixes #3525
[Graph]
Fix compilation error due to undefined fprintf/stderr.
[Unordered]
Use 'E' for key extractor, freeing 'K' for key.
Support incomplete template parameters to unordered containers.
以上更新内容の一部
URLリンク(booster.x0.to)

345:デフォルトの名無しさん
09/11/21 01:53:49
Version 1.41.0
New Library: Property Tree.
Updated libraries: DateTime, Filesystem, Iostreams, Math, Multi-index Containers,
Proto, Python, Regex, Spirit, System, Thread, Unordered, Utility, Wave, Xpressive.
Updates to boost build and quickbook. The CMake build system for Boost, still
under development here, has been removed from the main release to avoid confusion.

346:デフォルトの名無しさん
09/11/24 01:34:40
boost::iostreamsを使ってストリームりました。
このストリームを外から見たときはboostを使ったように見えないように、ダウンキャストしてostreamか何かに入れて置きたいのですが、どうにもうまくいきません。
どうしたら良いのでしょうか。

std::ostream a = boost::iostreams::stream<boost::iostreams::null_sink>();

こんなことがしたいです。

347:デフォルトの名無しさん
09/11/24 02:01:44
>>346
たぶん、C++0xだとそれでコンパイルできると思う。

とりあえず現状ではtypedef boost::iostreams::stream<hogehoge> my_stream_type;みたいにごまかすくらいしかないと思う。
もちろん、オブジェクトを関数の引数として渡すときには、もちろんstd::ostream&やstd::istream&で受け取れるけど。

348:346
09/11/24 02:16:53
>>.347
解答ありがとうございます。出来ませんか・・・。

349:デフォルトの名無しさん
09/11/24 05:18:50
メンバ変数なり関数ローカルなstatic変数にして、
std::ostream& を返す取得関数で公開すれば具象型はいちおう隠蔽できるけど。
それで不都合あったり?

350:デフォルトの名無しさん
09/11/24 18:34:11
resizeするときに、fortran_storage_order()のオプションを与える方法を教えていただけないでしょうか?
以下のように、fortran_storage_order()をつけるとresizeでエラーとなります。
  #include <boost/multi_array.hpp>
  int n = 200;
  typedef boost::multi_array<double, 2>::extent_range erange;
  boost::multi_array<double, 2> matrix(boost::extents[0][0]);
  matrix.resize(boost::extents[erange(1,n+1)][erange(1,n+1)], boost::fortran_storage_order());

351:デフォルトの名無しさん
09/11/27 19:25:51
更新しました。1.41正式版がリリースされてから一週間経ってもtrunkが1.42に移行しておりませんので、
マイナーバージョンアップ版が出るかもしれませんね。
URLリンク(booster.x0.to)
以下更新内容の一部
[Program_options]
allow empty values in config file, Fixes #1537
[Spirit]
Spirit: moved iter_pos parser to repository, added example
Spirit: fixed token_def::what()
Spirit: Moving karma::symbols to main code base
[Format]
fixes new functions (remaining_args, expected_args, ...) in case bound.size()==0
[Regex]
Allow std::locale's to not have a messages facet installed (fixes some STLPort issues).
Allow match_results to handle singular iterators.
[Integer]
Add support for long long throughout. Fixes #653.
Update Boost.Integer meta-programming classes to work with intmax_t where possible - ie to be 64-bit clean.
[Thread]
Ensure call_once event is correctly cleaned up
A partial fix for issue #2100: use boost::throw_exception for all exceptions except thread_interrupted
Don't use timed_lock to do a lock
Added missing BOOST_THREAD_DECL for at_thread_exit_function
Using BOOST_ASSERT rather than assert
[Graph]
Changed vertex_iterator to have vertex_descriptor rather than vertices_size_type as its value type
Removed old CSR interface; fixes #3135
[Smart_ptr]
Add error checking to lwm_pthreads.hpp. Refs #2681.
Remove std::move references. Refs #3570.

亦、libs_for_build_boost.rarもICUを4.3.3にアップデート致しました。

352:デフォルトの名無しさん
09/12/03 02:46:03
intrusive_ptrのコンストラクタにexplicitがついてないのはなんでなんだぜ?
デフォルト値があるだけで、厳密には1引数じゃないから?

353:デフォルトの名無しさん
09/12/03 03:12:25
intrusive_ptr & operator=(T * rhs)
があるね

354:デフォルトの名無しさん
09/12/03 13:33:43
boostのコンパイル済み.libって、同じコンパイラでも内部で使用するクラスの実装、
たとえばSTLが違う場合(VC++で標準STLかSTLPortか)にリンクしても問題ない?
標準STLでもセキュリティ強化の#defineを指定すると実装内容が変わったりするし・・・


355:デフォルトの名無しさん
09/12/03 17:13:48
STLPortはBoostビルド時に専用のコンフィグコマンドがあるので、
問題があるかどうかは知らんけどとりあえず自前でビルドして使った方がいいと思う

356:デフォルトの名無しさん
09/12/04 04:02:55
>>353
あー、intrusive_ptrに対応してるクラスなら、
そのポインタから安全に変換できるはずだからexplicitは必要ないってことか。

357:デフォルトの名無しさん
09/12/04 19:24:17
更新しました。SVNは1.42に移行しました。
URLリンク(booster.x0.to)
以下更新内容の一部
[Program_options]
ProgramOptions: added a couple of missing std:: namespace qualifiers
[Spirit]
Spirit: added karma::symbols generator, updated docs, tests, and example
Spirit: removed UB in rule and token_def initialization, added copy constructor for token_def
Spirit: added karma::auto_ and related facilities, added test
Spirit: added new karma example (auto_facilities.cpp), tweaks to auto_ tests
Spirit: added auto based overloads for API functions where possible
[Serialization]
fixed BOOST_STATIC_WARNING implementation macro name conflict
Fix memory leaks in void_caster short cut memory leaks
[Uuid]
Added uuid library
Removed BOOST_STATIC_ASSERT, replaced with a static method
[Iterator]
Made sure that iterator_facade's nested ``::pointer`` type is always
the same as what's returned from operator->. For input iterators,
that wasn't always the case (see operator_arrow_proxy).Fixes #1019.
[Graph]
Fixed missing #endif
[Integer]
Change long long to boost::long_long_type etc.
Make code respect BOOST_NO_INTEGRAL_INT64_T.
[Bind]
Make mem_fn work with overloaded unary operator&. Refs #3003. Sorry it took so long.
[Exeption]
Ticket #3211

亦、libs_for_build_boost.rarもbjam.exeをrev.58011にアップデート致しました。

358:デフォルトの名無しさん
09/12/05 14:43:24
使ってないが乙

359:デフォルトの名無しさん
09/12/05 14:45:35
>>357
sankusu otsu


360:デフォルトの名無しさん
09/12/07 18:00:18
VS2008を使っているのですが、なぜかthreadだけリンカエラーがでます。

↓こんな感じで
1>LINK : fatal error LNK1104: ファイル 'libboost_thread-vc90-mt-sgd-1_40.lib' を開くことができません。

同じcppファイルの中でも、他のやつ(unordered_mapとか)は問題なく使えてるのに、threadだけでます。
だれか解決法を知っている方がいたらご教授を……orz

361:デフォルトの名無しさん
09/12/07 18:03:23
boostをちゃんとインストールしよう。
そのままだとヘッダだけで使えるライブラリしか使えないよ。

362:デフォルトの名無しさん
09/12/07 18:47:25
>>361
解決しました。

インストールはしていたのですが、どうやらライブラリのパス指定が間違っていたようです。
標準に指定されるディレクトリから変更した場合、そことは別の場所にライブラリフォルダができてしまうようで……。
コマンドプロントのメッセージを追ってたら気付くことができました……。

どうも、ありがとうございました。

363:デフォルトの名無しさん
09/12/08 23:50:50
#include <boost/spirit/utility/functor_parser.hpp>
では警告が出るから
#include <boost/spirit/include/classic_functor_parser.hpp>
を使うと、
error: expected class-name before '<' token
やらのエラーで今度はコンパイル出来ない。(#^ω^)

364:デフォルトの名無しさん
09/12/09 00:18:19
自己解決。
namespace が boost::spirit::classic になったのか。失礼した。

365:デフォルトの名無しさん
09/12/09 06:37:45
ここにもspiritの罠に引っかかった生け贄が一人いたか。

俺もだ。

366:デフォルトの名無しさん
09/12/10 04:16:08
コンテナフレームワークライブラリはどこですか?

367:デフォルトの名無しさん
09/12/11 13:19:19
threadとbindでメンバ関数で引数を取る場合、どんな感じで使えばいいのでしょうか……?

たとえばこんなふうに
class Hoge{
public:
  void run();
void fanc(int x, int y);
}

Hoge tmp;
thread thr_tmp(bind(&Hoge::run, &tmp));

runが引数を取らないメンバ関数ならこれで動きますが、
メンバ関数が引数を取る場合(上の例だとfancを実行する場合)はどのようにすればいいのでしょうか?

自分で色々調べてためしてみましがた、尽くコンパイルエラーがでます……orz


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch