Boost総合スレ part8
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/08/28(金) 16:53:36part 7 http://pc12.2ch.net/test/read.cgi/tech/1232367742/
part 6 http://pc11.2ch.net/test/read.cgi/tech/1207749841/
part 5 http://pc11.2ch.net/test/read.cgi/tech/1192662575/
part 4 http://pc11.2ch.net/test/read.cgi/tech/1175663346/
part 3 http://pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/
■関連サイト■
Boost C++ Libraries
http://www.boost.org/
Boost 翻訳プロジェクト
http://boost.cppll.jp/HEAD/
Let's Boost
http://www.kmonos.net/alang/boost/
boost info
http://shinh.skr.jp/boost/
0002デフォルトの名無しさん
2009/08/28(金) 16:55:31Boost C++をチューンアップする最先端ライブラリ
http://www.amazon.co.jp/exec/obidos/ASIN/4894714191/
Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798017043/
Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/
C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/
The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/
■関連スレ■
C++相談室 part71
http://pc12.2ch.net/test/read.cgi/tech/1247853298/
C++0x 6
http://pc12.2ch.net/test/read.cgi/tech/1245092251/
【C++】STL(Standard Template Library)相談室 11
http://pc11.2ch.net/test/read.cgi/tech/1231640024/
0003デフォルトの名無しさん
2009/08/28(金) 16:57:38https://svn.boost.org/trac/boost/wiki/BoostSandbox
Boost Vault
http://www.boostpro.com/vault/
Loki
http://sourceforge.net/projects/loki-lib/
JTC1/SC22/WG21 - The C++ Standards Committee
http://www.open-std.org/jtc1/sc22/wg21/
POCO, the C++ Portable Components
http://www.appinf.com/poco/info/
http://sourceforge.net/projects/poco/
The unofficial BCB Boost patches
http://bcbboost.sourceforge.net/
0004デフォルトの名無しさん
2009/08/28(金) 16:59:27まだよく見てないけど、mpl::stringとか黒魔術の香りしかしないぜ。
0005デフォルトの名無しさん
2009/08/28(金) 17:13:02mpl::stringキタ━
0006デフォルトの名無しさん
2009/08/28(金) 18:09:550007progress_display
2009/08/28(金) 21:04:390008compressed_pair
2009/08/28(金) 21:22:340009progress_display
2009/08/28(金) 23:00:23お前はいいんだよバカ!
0010compose
2009/08/29(土) 03:11:560011デフォルトの名無しさん
2009/08/29(土) 05:50:120012デフォルトの名無しさん
2009/08/29(土) 17:36:05http://ja.uncyclopedia.info/wiki/Progress_display
0013デフォルトの名無しさん
2009/08/29(土) 18:13:510014デフォルトの名無しさん
2009/08/29(土) 22:27:56ttp://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内不具合情報も更新しました。
0015progress_display
2009/08/29(土) 22:55:20ふ、ふざけんな(´;ω;`)
0016デフォルトの名無しさん
2009/08/29(土) 23:08:050017名無しさん@そうだ選挙に行こう
2009/08/30(日) 13:00:210018名無しさん@そうだ選挙に行こう
2009/08/30(日) 13:32:040019デフォルトの名無しさん
2009/08/31(月) 00:14:40専門家だよな、ある意味。
0020デフォルトの名無しさん
2009/08/31(月) 00:16:11ttp://codepad.org/
長いソースを貼るときはここへ!
ってテンプレに入れようぜ。
まあこのスレはみんなレベルが一定以上あるから
言わなくても大丈夫かもしれないけどさ。
0021デフォルトの名無しさん
2009/09/02(水) 04:56:17new_clone書いても意味なくなったってこと?
それともデフォルト的なnew_cloneがなくなったの?
0022デフォルトの名無しさん
2009/09/05(土) 23:17:23よく分かりませんが、とりあえずその更新では/trunk/boost/ptr_container/clone_allocator.hppの
template< class T >
inline T* new_clone( const T* r )
{
return r ? new_clone( *r ) : 0;
}
の部分が削除されました。
0023デフォルトの名無しさん
2009/09/06(日) 01:38:11ttp://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
0024デフォルトの名無しさん
2009/09/06(日) 13:40:32boost::shared_ptr
Boost.Function
Boost.Lambda
Boost.Spirit
Boost.MPL
Boost.Preprocessor
これらは実務で使えるレベルまで勉強して習得すべきだと思います?
boost::shared_ptrは使いますが、
Boost.MPLやBoost.Preprocessorは使ったことがありません。
実務で使っている方はいらっしゃいますでしょうか?
002524
2009/09/06(日) 13:48:480026デフォルトの名無しさん
2009/09/06(日) 13:49:54function、lambda、spiritは遊んだことあるけど今のところ実務では使ってない。
必要になってから勉強して習得すればいいんじゃないの?
OJTで十分。
0027デフォルトの名無しさん
2009/09/06(日) 13:54:18全部行けたりするの?
0028デフォルトの名無しさん
2009/09/06(日) 14:09:48オーバーロードの曖昧さを解決するためにenable_ifを覚えようとして、芋づる式に
type_traitsやmplも覚えた
002926
2009/09/06(日) 14:16:51ここ最近C++/CLIでdelegate使ってたから忘れてた。
0030デフォルトの名無しさん
2009/09/06(日) 15:02:57TR1に入ってるものくらいは全部許可されていてほしいところだよね。
0031デフォルトの名無しさん
2009/09/06(日) 15:11:180032デフォルトの名無しさん
2009/09/06(日) 15:21:230033デフォルトの名無しさん
2009/09/06(日) 15:23:010034デフォルトの名無しさん
2009/09/06(日) 15:27:58一応それなりに便利だし
0035デフォルトの名無しさん
2009/09/06(日) 16:18:11unique_ptrさんが正式にデビューしたらscoped_ptrさんとscoped_arrayさんも……
0036デフォルトの名無しさん
2009/09/06(日) 16:41:01ただ消え去るのみ
0037デフォルトの名無しさん
2009/09/06(日) 16:42:06設定ファイル読み込みはいらないと思うんだが…
でもMLでこれを言うのは気が引ける
0038デフォルトの名無しさん
2009/09/06(日) 16:58:411.40でも直ってないし、V2でちゃったしで、もう直らないのかも。
そんな感じなんで、業務に使うのはちょっと勇気が必要な気が。
0039デフォルトの名無しさん
2009/09/06(日) 19:32:52どちらが実行速度速いですか?
いい換えるとArrayライブラリ使うと
配列に速度の点で負けますか?
0040デフォルトの名無しさん
2009/09/06(日) 19:40:55速度は実測が基本
一般的な最適化が期待できるなら、速度が落ちる理由はたぶん無い。
0041デフォルトの名無しさん
2009/09/06(日) 19:42:060042デフォルトの名無しさん
2009/09/06(日) 19:48:15もっとも基本的なインライン化さえされれば組み込み配列と等価だろうね。
組み込み配列に無い操作についても、普通にSTL使って書けば同じ実装になるだろうし。
0043デフォルトの名無しさん
2009/09/06(日) 21:00:060044デフォルトの名無しさん
2009/09/06(日) 22:35:32http://www.boostcon.com/community/wiki/show/private/2009/
にあるBoostconの資料漁ってみた。
まともなドキュメント無いから知らんかったが、
Spirit V2のKarmaって今までのSpirit(V2でのQiに相当)の逆に、
PEGとSemantic Actionを使ってformatするライブラリだったんだな。
それにしても、Qi(氣)とかKarma(業)とか、DQNネーム自重しろよwww
0045デフォルトの名無しさん
2009/09/06(日) 22:50:57mem_fnは、俺が使わなくてもbindの中の人が使っているというイメージ。
いや、実際そういう実装なのか確かめていないけどさ。
0046デフォルトの名無しさん
2009/09/07(月) 08:37:07SpiritはDQNネームに含まれないのか
0047デフォルトの名無しさん
2009/09/07(月) 13:09:20なんてこったいBoostもDQNネームに犯されているのか・・・
自作のプログラムまで波及しないように変数名はシンプルに a とか b にするよ
0048デフォルトの名無しさん
2009/09/07(月) 21:20:060049デフォルトの名無しさん
2009/09/07(月) 22:50:51確信を付いたな。
0050デフォルトの名無しさん
2009/09/07(月) 22:56:51解答を拒否する
0051デフォルトの名無しさん
2009/09/08(火) 04:32:48BoostのuBLASの存在に気付いたんだけど、これってpdfマニュアル無いの?
0052デフォルトの名無しさん
2009/09/08(火) 05:48:28実行速度は速いが使いやすくもなく互換性もない。バグもしばしば見つかる。
コンパイルは新しい世界が見えるほど遅い。現状では人柱用だな。
0053デフォルトの名無しさん
2009/09/08(火) 20:34:59と言われるのが邪魔なので、
#pragma warning(disable : 4819)
としてしまおうかと思っているのですが、
しない方がいいでしょうか?
0054デフォルトの名無しさん
2009/09/08(火) 20:56:230055デフォルトの名無しさん
2009/09/08(火) 21:05:43>>53
消しちゃえ。 プロジェクトのプロパティで消すのもいいよ。
0056デフォルトの名無しさん
2009/09/08(火) 21:14:06005753
2009/09/08(火) 21:49:52ご指摘のあった
警告レベルがあわないヘッダのインクルードで警告を抑制する方法 | いちばんやさしいゲームの作り方
ttp://www.game-create.com/archives/411
これで行かせていただきます。
0058デフォルトの名無しさん
2009/09/09(水) 17:53:48あと、Protoを土台にしたPhoenix V3の開発はどうなってしまったんだろう
0059デフォルトの名無しさん
2009/09/09(水) 18:31:14LambdaとPhoenixは統合作業中とか聞いてますがね。
0060デフォルトの名無しさん
2009/09/09(水) 19:13:240061デフォルトの名無しさん
2009/09/09(水) 19:35:56実際に統合作業を進めているレポジトリが見つからないんだよね。
http://lists.boost.org/boost-announce/2008/10/0205.php
を見る限りだと、統合するというより準備が出来次第LambdaからPhoenixに乗り換える、
っていうことになるような気がする。今は状況が変わったのかもしらんけど。
>>60
C++0xのLambdaはMonomorphicだからPolymorphicなBoost.LambdaやPhoenixとは別物。
SpiritのSemantic Action内でC++0xのLambda使おうとは思わないしね。
0062デフォルトの名無しさん
2009/09/09(水) 19:59:17どうやらPhoenix V3の作業はここから進んでいないようだ
0063デフォルトの名無しさん
2009/09/09(水) 20:49:07作ってくれればうれしいんだが。
と言ってみるテスト。
0064progress_display
2009/09/09(水) 20:51:010065デフォルトの名無しさん
2009/09/09(水) 21:33:01Boost.PHP
Boost.Ruby
Boost.BASIC
Boost.ECMAScript
何と3ライブラリ同時リリース!!
0066デフォルトの名無しさん
2009/09/09(水) 21:35:340067デフォルトの名無しさん
2009/09/09(水) 21:52:24006863
2009/09/09(水) 22:16:27たった1つでいいから…(ry
的な意味でごんす。
決してこれら3つ以外で便利なライブラリの登場を期待しているわけではないごんす。
0069デフォルトの名無しさん
2009/09/09(水) 22:18:03どういう状況で詰まっているということですかいな?
0070デフォルトの名無しさん
2009/09/09(水) 23:24:03async_read() に渡すハンドラの中で sleep() かませば良いですか?
0071デフォルトの名無しさん
2009/09/09(水) 23:45:55詰まってるというより、Spirit回りの作業の方が優先で手が回ってないようだ
Spirit V2のかなりの部分のマニュアルが1.40に間に合わなくて
今まさに1.41に向けてtrunkの方で書いてる最中みたいだしね
https://svn.boost.org/trac/boost/browser/trunk/libs/spirit/doc
1.41ではやっとkarmaのマニュアルが読めそうだな
0072デフォルトの名無しさん
2009/09/10(木) 00:13:14誰得
0073デフォルトの名無しさん
2009/09/10(木) 02:47:20async_read_at()とハンドラ内でsleepかな
やったことないけど
0074デフォルトの名無しさん
2009/09/10(木) 19:43:24思っても言っていいことと悪いことがだな。
0075デフォルトの名無しさん
2009/09/10(木) 21:23:240076デフォルトの名無しさん
2009/09/10(木) 22:55:14できそうです。どもっす
0078lambda
2009/09/12(土) 03:40:470079デフォルトの名無しさん
2009/09/12(土) 06:48:57たとえC++に多態ラムダが入っても無理だ。
需要は減っても0にはならないさ。
0080デフォルトの名無しさん
2009/09/12(土) 13:27:11具体的に言うと、戻り値の関数オブジェクトで関数ポインタ使ってるのかな?
0081デフォルトの名無しさん
2009/09/12(土) 13:49:470082デフォルトの名無しさん
2009/09/13(日) 10:48:44のように仮引数名を書いてもエラーにならないんで便利なんですけど、この仮引数名は無視されるんですか?
それとも副作用ある?
0083デフォルトの名無しさん
2009/09/13(日) 14:07:32言語としては意味が無い。
「便利」というとおり、コードを読む人には意味がある。
0084デフォルトの名無しさん
2009/09/13(日) 14:37:18副作用は無い。
0085デフォルトの名無しさん
2009/09/13(日) 15:41:27ありがとう。安心して使えます。
0086デフォルトの名無しさん
2009/09/13(日) 18:12:06ttp://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
0087デフォルトの名無しさん
2009/09/13(日) 22:39:52って
#if boolean
とは違うんですか?
どういった利点があるのでしょうか?
008887
2009/09/13(日) 22:45:30訳わかんないこと書いてました。
全然違いました
消えます。
ほんとすいませんすいません、、、
0089デフォルトの名無しさん
2009/09/13(日) 22:50:400090デフォルトの名無しさん
2009/09/13(日) 23:26:020091デフォルトの名無しさん
2009/09/16(水) 09:37:470092デフォルトの名無しさん
2009/09/16(水) 09:40:070093デフォルトの名無しさん
2009/09/17(木) 14:36:130094デフォルトの名無しさん
2009/09/17(木) 20:52:16Spiritさんですか?
ごくろうさまです。
0095デフォルトの名無しさん
2009/09/17(木) 20:57:48Boost.Regex「てめー俺のことDisってんのかYO!」
0096mpl
2009/09/17(木) 21:04:510097xpressive
2009/09/17(木) 21:16:110098デフォルトの名無しさん
2009/09/17(木) 21:18:44ttp://www.boost.org/doc/libs/1_40_0/boost/multi_index/random_access_index.hpp
ここなどで出て来る
#pragma parse_mfunc_templ off
は何をしているものでしょうか?
0099デフォルトの名無しさん
2009/09/17(木) 21:34:45周辺にそのまま答えが書いてあるように見えるんだが……
MetroWerks CodeWarrior 8.3でバグが有って、設定によっては
const&で一時オブジェクトをバインド出来ないから、
コンパイラが独自に用意しているparse_mfunc_templプラグマをオフにしてる。
Boostは準拠度低いコンパイラで動かせるようなWorkaroundが多いから、
自分の処理系で関係ない部分は読み飛ばすべき。
0100デフォルトの名無しさん
2009/09/17(木) 21:40:52http://herbsutter.wordpress.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/
に書いてあるようなやつだな
0102デフォルトの名無しさん
2009/09/18(金) 23:29:030103デフォルトの名無しさん
2009/09/19(土) 00:15:55大丈夫かー!もうちょっとで救急車くるぞー!
0104デフォルトの名無しさん
2009/09/19(土) 00:17:19覚醒者?
0105デフォルトの名無しさん
2009/09/19(土) 00:20:03単なるサンプルプログラムで、
結構時間のかかる処理だったから、
画面に進歩を表示させるのに使えるんじゃないかと思ってさ。
結局使わなかったけどな(笑)
0106デフォルトの名無しさん
2009/09/19(土) 04:05:270107105
2009/09/19(土) 21:18:44ついにboost::progress_displayを使ったよ。
案外便利だったわ。
超限定的なシチュエーションだが。
0109デフォルトの名無しさん
2009/09/19(土) 21:25:020110105
2009/09/19(土) 21:35:190111デフォルトの名無しさん
2009/09/20(日) 00:38:00結婚して
0112デフォルトの名無しさん
2009/09/20(日) 03:25:080113デフォルトの名無しさん
2009/09/20(日) 09:48:590114デフォルトの名無しさん
2009/09/20(日) 10:54:22断固抗議する
progress_displayはboostの良心
0115デフォルトの名無しさん
2009/09/20(日) 11:23:070116デフォルトの名無しさん
2009/09/20(日) 11:39:10ま、新しいとは思うけど、
恥ずかしくないのかねGONZOは
色物で釣ろうとしないで、作品の中身で勝負しろよ。
0117デフォルトの名無しさん
2009/09/20(日) 11:42:01timerディレクトリの中に入れるとかはした方が良いんじゃないかと。
0118デフォルトの名無しさん
2009/09/20(日) 11:59:29つーか仕様知らないけど
0119デフォルトの名無しさん
2009/09/20(日) 13:41:03出力ストリームを抽象化して付け替えたりできたらもう
progress_displayじゃないよな
0120デフォルトの名無しさん
2009/09/20(日) 13:56:21今のところstd::ostreamを継承するクラスに対してのみ出力可能だから、
まああれだ、
一応がんばってんだよ。
0121デフォルトの名無しさん
2009/09/20(日) 13:58:04>>110だと、なんかとてつもなくエロい表現に聞こえるな。
0122デフォルトの名無しさん
2009/09/21(月) 09:33:20どうもboost::lambdaとC++0xのラムダ式はどうも見た目がちがうような…
0123デフォルトの名無しさん
2009/09/21(月) 10:08:14boost::tr1に採用されたものが入ってる
0124デフォルトの名無しさん
2009/09/21(月) 10:19:59C++0xのlambdaは言語サポートだから、
ライブラリによるboost::lambdaとはまったくの別物
0125デフォルトの名無しさん
2009/09/21(月) 10:55:39できれば関数ポインタを使ってないオーバーヘッドが無い方を使いたいな。
0126デフォルトの名無しさん
2009/09/21(月) 11:07:510127デフォルトの名無しさん
2009/09/23(水) 01:08:48使うのやーめた
しこしこ関数オブジェクト造るお
0128デフォルトの名無しさん
2009/09/23(水) 01:18:51どこからそういう結論になった
0129デフォルトの名無しさん
2009/09/23(水) 01:35:550130デフォルトの名無しさん
2009/09/23(水) 01:39:04無能の常套手段だよなwww
0131127
2009/09/23(水) 03:30:200132デフォルトの名無しさん
2009/09/23(水) 22:34:19使っても大丈夫ですかね?
0133デフォルトの名無しさん
2009/09/24(木) 23:16:15まかした
0134デフォルトの名無しさん
2009/09/25(金) 20:52:09ならば、目立つバグを数カ所に仕掛けておくんだ
0135デフォルトの名無しさん
2009/09/25(金) 22:49:55只、この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
0136デフォルトの名無しさん
2009/09/25(金) 22:51:16ttp://booster.x0.to/
0137デフォルトの名無しさん
2009/09/27(日) 13:27:320138デフォルトの名無しさん
2009/09/27(日) 13:32:26俺は挫折するほど
やり込みもしなかったと思う。
0139デフォルトの名無しさん
2009/09/27(日) 14:15:580140デフォルトの名無しさん
2009/09/27(日) 14:34:16boostは麻薬
0141デフォルトの名無しさん
2009/09/27(日) 17:18:05「文法から始める プログラミング言語 Microsoft VisualC++」を買ってみたら、
BOOST_FOREACHとかlexical_castとかthreadとか使ってたり、
shared_arrayとかmulti_arrayとかの使用を推奨していたり、
TR1のregexとかshared_ptrとかも使ってたりで自動的にBoost漬けになりました。
0142デフォルトの名無しさん
2009/09/27(日) 17:29:450143デフォルトの名無しさん
2009/09/27(日) 19:00:34もはやC++を勉強したと言えるかどうかすら・・・
0144デフォルトの名無しさん
2009/09/27(日) 20:34:52思うに、来たるC++0xとVS2010を見越しての内容じゃないかな。
0145デフォルトの名無しさん
2009/09/28(月) 01:21:51string str=std::string(p);
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1( str );
とするのと
typedef boost::tokenizer<> tokenizer1;
tokenizer1 tok1(std::string(p));
で、何で挙動が違うのでしょう?
0146デフォルトの名無しさん
2009/09/28(月) 01:43:320147デフォルトの名無しさん
2009/09/28(月) 02:54:51定期的にshared_ptrの実装を写経しろ
0148デフォルトの名無しさん
2009/09/28(月) 18:13:00早急に VS2010 に以降して lambda さんとはお別れしたい.
それから Boost.Regex 君もそろそろ引退したまえ.
0149デフォルトの名無しさん
2009/09/28(月) 19:58:270151デフォルトの名無しさん
2009/09/28(月) 20:58:48tokenizer1 tok1(std::string(p));
だと、この文が終了した段階で一時オブジェクトである string が破棄される。
tokenizer は対象のコンテナに対する参照を iterator で持っていて、かつ
> ttp://www.boost.org/doc/libs/1_40_0/libs/tokenizer/tokenizer.htm
> Parsing is done on demand as the tokens are accessed via the iterator provided by begin.
のように token_iterator でアクセスされた際にパースが発生する為、アクセスのタイミングまで
対象のコンテナが生存している必要がある。
0152デフォルトの名無しさん
2009/09/28(月) 21:54:440153デフォルトの名無しさん
2009/09/28(月) 21:55:29Spiritに比べれば、Lambdaなんて軽いものさ。
0154デフォルトの名無しさん
2009/09/28(月) 22:38:280155デフォルトの名無しさん
2009/09/28(月) 22:46:330156デフォルトの名無しさん
2009/09/28(月) 23:59:460157デフォルトの名無しさん
2009/09/29(火) 01:21:11ありがとうございます。STLとboost を使おうと決心していろいろ使っています。
自分で作った方が早くて楽なのになぁと思いつつ
なれれば、STL + boost の方が、安全かつ、早くできるはず と信じて;
0158デフォルトの名無しさん
2009/09/29(火) 03:51:340159デフォルトの名無しさん
2009/09/29(火) 04:39:48値は変更しないけど十分な寿命を持った左辺値が必要なときには、そういう手段が
使えるようになるかもね。
現状ではポインタで受け取るようにしてないと、危ないんだよねぇ。
0160157
2009/09/29(火) 10:41:11自分でも無理だと思う。Cばかり20年以上だから;
0161デフォルトの名無しさん
2009/09/29(火) 18:45:050162デフォルトの名無しさん
2009/09/29(火) 19:53:49この場合はダミーというか rvalue reference を受けるコンストラクタも追加すればいいんじゃないでしょうか。
>157
ぶっちゃけ C++ の経験があまりないんだろうなとは思いながら回答しました。popp
一時オブジェクトの生存期間とか C++ 使いなら誰もが一度ははまったことがあり11そうなところなので。
>自分で作った方が早くて楽なのになぁと思いつつ
無理に気負わず自分が書くより楽になると思う部分から使っていけばいいと思います。
0163デフォルトの名無しさん
2009/09/29(火) 20:59:08shared_ptr複製時のアトミック操作のコストが気になるのかな?気持ちはわかるが、無理だと思う。
非マルチスレッド版とマルチスレッド版の間での共有をどう解決するかだ。その間で共有できないなら利便性が無くなりメリットの乏しいものになる。
普通の使い方ではshared_ptrの複製のコストは問題にならないと思う。
それでも、複製のコストが気になるならshared_ptrを参照渡しにすればコピーのコストはないし、そうすればshared_ptrの複製が減らせられる。
vectorで使うときの大量な複製が気になるならC++0xの右辺値参照に期待しよう。
0164デフォルトの名無しさん
2009/09/29(火) 21:33:39と思うけど、ものすごくクリティカルなら知らん
つーか、そんなに激しくクリティカルならポインタ取り出せばいいような気がするし、
デフォのままで問題ないと思うし、たぶんBoostの中の人もそう思ってるからずっと
こういう仕様なんだろうと思うけど
0165Boost.Xpressive
2009/09/30(水) 12:20:37これからはぼくと std.regex 君の時代だと思うのれす。。。
0166デフォルトの名無しさん
2009/09/30(水) 14:55:06もうなんかいっそのこと
Boost.RegexはBoost.Xpressiveのラッパにしちゃだめなのかな(笑)
0167デフォルトの名無しさん
2009/09/30(水) 16:46:190168デフォルトの名無しさん
2009/09/30(水) 16:49:560169デフォルトの名無しさん
2009/09/30(水) 17:05:00ええと、progress_displayとcompressed_pairと・・・あと何だろう?
program_optionsかな?
0170デフォルトの名無しさん
2009/09/30(水) 17:15:52一つだからな
0171デフォルトの名無しさん
2009/09/30(水) 17:38:49ホントかよw
すげーwww
しかしまあprogress_displayだって安定性では引けを取らないぜ。
0172デフォルトの名無しさん
2009/09/30(水) 19:04:14てめーprogram_optionsさんディスってんじゃねーよ
俺なんかお世話になりまくりだっつーの
>>165
たしかに使用頻度は激減したけど・・・コンパイル速いじゃん
0173デフォルトの名無しさん
2009/09/30(水) 19:29:09なので、stdにあるからboostのは要らないというのは変な表現だと思う。
もっとも俺はspirit一筋だけどな。
0174デフォルトの名無しさん
2009/09/30(水) 20:52:00マジレスするとshared_ptr, scoped_ptr, noncopyable
0175デフォルトの名無しさん
2009/09/30(水) 21:44:50というか改良が早いのは絶対Boost.Regexなんだろうから
むしろ要るのはBoost.Regexの方。
といってもBoost禁止とかいうイカレタ職場では
Std.Regexを使うことになるんだろうけど。
0176デフォルトの名無しさん
2009/09/30(水) 23:39:41なんとなくだけど
0177デフォルトの名無しさん
2009/09/30(水) 23:41:01おかしいらしいね。
でも一度そうしちゃった以上どうしようも無いんだろうな。
0178デフォルトの名無しさん
2009/09/30(水) 23:45:400179デフォルトの名無しさん
2009/10/01(木) 02:42:090180デフォルトの名無しさん
2009/10/01(木) 02:54:41コピーできない増えないクラスを作るライブラリっぽい名前
Boost.Virginとか
0181デフォルトの名無しさん
2009/10/01(木) 09:12:46ちょw
恥ずかしいなw
Boost.DQNとかあってもおかしくない様に見えてくるのが不思議。
0182デフォルトの名無しさん
2009/10/01(木) 09:19:27singletonライブラリーですね。わかります。
0183デフォルトの名無しさん
2009/10/02(金) 16:36:11boost\serialization\singleton.hpp
ってのがあった
0184デフォルトの名無しさん
2009/10/02(金) 17:15:25CStringがシリアライズできるように
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なので使えません。
何か良い方法ないでしょうか?
0185デフォルトの名無しさん
2009/10/02(金) 17:34:29make_nvp("CString", s)
とするか、
タグそのものを使いたくないならtextでシリアライズする
0186デフォルトの名無しさん
2009/10/02(金) 17:36:11いったい何がやりたいの?
0187デフォルトの名無しさん
2009/10/02(金) 17:57:25例えば
std::string name;
をシリアライズするとき
ar & make_nvp("name", name);
ってするよね。
その結果として
<name>山田太郎</name>
を期待する訳で
<name><string>山田太郎</string></name>
がでてきたら嫌でしょ?って話。
オブジェクトのシリアライズの話でなくて型のシリアライズのカスタマイズに関する
話なの。考えもせず知ったかでレスせんでいいよ。
0188デフォルトの名無しさん
2009/10/02(金) 18:11:11自作コンテナのシリアライズの場合
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>
0189デフォルトの名無しさん
2009/10/02(金) 19:13:56時と場合にもよるけど。
0190デフォルトの名無しさん
2009/10/02(金) 19:27:07判りやすいだろうと思って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>が嫌だなと思うわけです。
0191デフォルトの名無しさん
2009/10/02(金) 20:44:20ttp://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".
0192デフォルトの名無しさん
2009/10/03(土) 00:00:430193デフォルトの名無しさん
2009/10/05(月) 14:52:08VS2005 用のは無いのか?
0195デフォルトの名無しさん
2009/10/05(月) 21:38:35詳細は寝て待て!
0196デフォルトの名無しさん
2009/10/05(月) 22:12:190197デフォルトの名無しさん
2009/10/05(月) 22:32:44じゃああぼんすれば良いじゃん。
バカなの?
0198デフォルトの名無しさん
2009/10/05(月) 22:34:360199197
2009/10/05(月) 22:37:46> 一言いわれただけで発狂するほど自信満々のネタだったのか。
いや俺は>>195じゃねぇけどそんなの関係ねぇ。
とにかく気にくわない単語はあぼん。
じゃないとまともに2ch見てらんねぇし。
0200デフォルトの名無しさん
2009/10/05(月) 23:17:01あんま迷惑なことしちゃダメよ。
0201デフォルトの名無しさん
2009/10/05(月) 23:34:02そういうお前はちゃんと有無を言わさず>>198や>>200をあぼん
しろよ。
0202デフォルトの名無しさん
2009/10/06(火) 00:08:32progress_displayを愛する一人
0203デフォルトの名無しさん
2009/10/06(火) 02:40:58そっとしておいてやるのが吉
0204デフォルトの名無しさん
2009/10/06(火) 08:03:15そんな私も、今では progress_display 童貞。
孫にあげるのは、もちろん progress_display。
なぜなら、彼もまた特別な存在だからです。
0205195
2009/10/06(火) 08:09:350206デフォルトの名無しさん
2009/10/06(火) 14:20:09>>197みたいなキチガイもたまには湧くさ
0207デフォルトの名無しさん
2009/10/07(水) 20:06:48boost/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で置き換えてしまおうと考えているのですが。
よろしくお願いします。
0208デフォルトの名無しさん
2009/10/07(水) 21:16:585分とかからんだろうが
0209デフォルトの名無しさん
2009/10/09(金) 00:46:30boostも2008用のにしようとインストーラーDLしようとしたら
ログイン式になってるな
なぜ?
0210デフォルトの名無しさん
2009/10/09(金) 02:52:24公式から落としてコンパイルするか、
http://booster.x0.to/ のスナップショットを使うべし
0211デフォルトの名無しさん
2009/10/09(金) 02:54:41. 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件
0212デフォルトの名無しさん
2009/10/09(金) 08:29:080213デフォルトの名無しさん
2009/10/09(金) 08:31:440214デフォルトの名無しさん
2009/10/09(金) 12:15:530215デフォルトの名無しさん
2009/10/09(金) 12:37:05さすがboostを代表するライブラリだ
ハンパねぇーな
0216デフォルトの名無しさん
2009/10/09(金) 12:38:180217デフォルトの名無しさん
2009/10/09(金) 18:03:190218デフォルトの名無しさん
2009/10/10(土) 00:16:42まじかよ、と思ったらすでにアカウント登録済みだった。あれぇ?
0219デフォルトの名無しさん
2009/10/10(土) 17:49:131.40の倍以上はかかってる そんなに膨らんだっけ
0220デフォルトの名無しさん
2009/10/10(土) 17:57:32要求されるlib名が1.41とか付いてるんですが。
これは最初から付いてるやつを格納出来ないんですか。
自分でリネームするんですか
0221デフォルトの名無しさん
2009/10/10(土) 19:39:18亦、layout=taggedでリンクエラーが発生しておりましたのでlayout=versionedに戻しました。
尚、バージョン無しのファイルは必要無い様に思えますのでバージョン無しファイル生成バッチは同梱せずに暫く様子を見ます。
ttp://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
0222デフォルトの名無しさん
2009/10/10(土) 19:42:21how_to_build.txtとlibs_for_build_boost.rar内readme.txtも修正致しました。
>>193-194
VS2010のExpress Editionがリリースされた場合にそちらに移行する予定はありますが、
VS2005用をビルドする予定は今のところありません。
0223デフォルトの名無しさん
2009/10/11(日) 00:54:21そこまで重くなったかどうかわからんが
Warningの数が増えた 31万個(前は20万)
0224デフォルトの名無しさん
2009/10/11(日) 01:37:080225220
2009/10/11(日) 01:59:23libboost_regex-vc90-mt-s-1_41.lib
という存在してないものを要求されるようになりました。
前回のやつは、リネームしたら通ったのですが
今回はリネームするものがありません。
-s-付きがないです。
前のやつを残してほしかったです。消してしまいました。
0226デフォルトの名無しさん
2009/10/11(日) 09:19:46代替としてICUサポート無しでビルドしたlink=static, runtime-link=staticのRegexライブラリを追加してrarファイルを差し替えました。
今後のビルドでも同様の措置を採ります。
ttp://booster.x0.to/
0227デフォルトの名無しさん
2009/10/11(日) 12:10:580228デフォルトの名無しさん
2009/10/11(日) 13:01:010229デフォルトの名無しさん
2009/10/11(日) 14:06:44時の環境でruntimeが異なったときに、面倒なことになる。
ってやつのことかな。
0230デフォルトの名無しさん
2009/10/11(日) 18:40:050231デフォルトの名無しさん
2009/10/11(日) 18:44:390232デフォルトの名無しさん
2009/10/11(日) 19:46:11って言ってみると何人つれるかな?
0233bcc5.5
2009/10/11(日) 20:50:300234デフォルトの名無しさん
2009/10/11(日) 20:53:100235やんやん ◆yanyan72E.
2009/10/11(日) 21:00:440236デフォルトの名無しさん
2009/10/11(日) 21:03:38BOOST_AUTO使える?
0237やんやん ◆yanyan72E.
2009/10/11(日) 21:31:33BOOST_AUTOがどういうもんだかよく理解していないが、
http://www.kmonos.net/alang/boost/classes/typeof.html
ググって出てきたこのコードはコンパイルできてちゃんと動いたよ。
0238デフォルトの名無しさん
2009/10/11(日) 21:47:38後者はD言語やってりゃ知ってるだろうけど
0239デフォルトの名無しさん
2009/10/11(日) 21:50:03これが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;
}
0240デフォルトの名無しさん
2009/10/11(日) 22:33:57C4996「ケケケ…」
俺「何だきさまらあっ!?」
ぶっちゃけこの2つのエラーはBoostの中でdisableにするべき
0241デフォルトの名無しさん
2009/10/12(月) 00:19:300242デフォルトの名無しさん
2009/10/12(月) 11:53:48なんか気になる話が。
0243デフォルトの名無しさん
2009/10/13(火) 20:14:48と書いたら
hogehoge
と展開されるマクロってどう書くの?
( " を取りたい)
0244デフォルトの名無しさん
2009/10/13(火) 20:21:23など。
0245デフォルトの名無しさん
2009/10/13(火) 21:02:42無理だろ。
>>244
何を言っているの?
0246デフォルトの名無しさん
2009/10/13(火) 21:03:150247デフォルトの名無しさん
2009/10/14(水) 06:50:290248デフォルトの名無しさん
2009/10/15(木) 19:16:47warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
0249デフォルトの名無しさん
2009/10/15(木) 19:33:58B. 母国語でメッセージを表示する開発環境を使う
C. より適切な進路・職業を考える
どれでもお好きな方法を
0250デフォルトの名無しさん
2009/10/15(木) 19:43:44彼にはCが良いと思うよ。
0251デフォルトの名無しさん
2009/10/15(木) 20:32:58ライブラリのヘッダーでたまに出るけど、保存しなければ良いんじゃないか?
0252デフォルトの名無しさん
2009/10/15(木) 20:53:410253デフォルトの名無しさん
2009/10/16(金) 01:41:330254デフォルトの名無しさん
2009/10/16(金) 02:27:31#pragma warning(push)
#pragma warning(disable:4819)
#include <hoge>
#pragma warning(pop)
これに何の不満があるんだ
0255デフォルトの名無しさん
2009/10/16(金) 02:33:190256デフォルトの名無しさん
2009/10/16(金) 02:42:520257デフォルトの名無しさん
2009/10/16(金) 02:43:510258デフォルトの名無しさん
2009/10/16(金) 02:48:52何が悪いのかなんて分かるわけが無い
0259デフォルトの名無しさん
2009/10/16(金) 05:07:380260253
2009/10/16(金) 05:09:160261デフォルトの名無しさん
2009/10/16(金) 05:15:21ソースを全部BOM付きUTF-8で保存し直せば警告は無くなるんじゃないかな
0262デフォルトの名無しさん
2009/10/16(金) 05:25:45警告うるさめにして使ってるけど何も言われないな
0263デフォルトの名無しさん
2009/10/16(金) 05:27:04くらいの情報は出せないのか
0264デフォルトの名無しさん
2009/10/16(金) 05:34:54Yahoo!プログラミング言語検索ランキング(今回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件)+
0265デフォルトの名無しさん
2009/10/16(金) 10:41:37大物が抜けてるぞ
JavaScript で検索した結果 1〜10件目 / 約2,830,000,000件 - 0.32秒
0266デフォルトの名無しさん
2009/10/16(金) 11:14:160267デフォルトの名無しさん
2009/10/16(金) 11:29:37むしろJavaのほうが近いくらいなのに……
あとこれって 一般的な単語の basic b python って緒怺Oしてるの?
できないと思うけど
0268デフォルトの名無しさん
2009/10/16(金) 13:15:090269デフォルトの名無しさん
2009/10/16(金) 14:49:44というわけでコードエラーを発生させている作者名(確か元凶そこだよね)が悪いということにしとく
0270デフォルトの名無しさん
2009/10/16(金) 18:53:34ttp://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.
0271デフォルトの名無しさん
2009/10/16(金) 19:30:210272デフォルトの名無しさん
2009/10/16(金) 22:59:580273デフォルトの名無しさん
2009/10/17(土) 08:35:03なんとなくっていうか予定だとこう。
10/18 1.41.0 Beta
11/01 1.41.0 release
http://www.boost.org/community/index.html
ML でもリリースノートの更新依頼が出てた。
現状だと Property Tree が新規、Multi-index、Spirit、Wave が更新になってる。
0274デフォルトの名無しさん
2009/10/17(土) 08:44:431.39-1.40間はかなり変更が激しかったですが、
1.40-1.41間はfixやドキュメント整備が中心の様ですね。
0275デフォルトの名無しさん
2009/10/17(土) 15:27:53http://atnd.org/events/1839
0276デフォルトの名無しさん
2009/10/17(土) 15:39:51それより秀和の本の1.40か1.41対応第3版出してくれ
2版がまだ余ってるらしいので出せるかどうか結構微妙ではあるが
0277デフォルトの名無しさん
2009/10/17(土) 15:43:19あっちに結構吸収されたライブラリがあるから
0278デフォルトの名無しさん
2009/10/18(日) 11:08:56boostのドキュメントを素直に翻訳したものを出してほしい
0279デフォルトの名無しさん
2009/10/18(日) 19:58:35全部のドキュメント訳したら何千ページにもなるだろうからコミュニティベースで訳す他無いんじゃないか
最も、今までその試みが何度失敗したか分からんがね
第3版にrange_exが間に合うと良いなあ
0280デフォルトの名無しさん
2009/10/18(日) 22:07:45道具のせいにする
道具にも馬鹿にされて自己嫌悪に陥るな
0281デフォルトの名無しさん
2009/10/19(月) 00:01:26これ面白い。
INI parser しか試してないけど、レジストリも触れちゃうみたい。
0282デフォルトの名無しさん
2009/10/21(水) 13:09:36その存在を始めて知った!
HTMLしかないと思っていたよ
0283デフォルトの名無しさん
2009/10/21(水) 22:03:520284デフォルトの名無しさん
2009/10/22(木) 09:42:09挙動がよくわからなかったりマニュアルの英語が何言っているか理解できないときは
ヘッダを読むけどコレがとても為になるですよ
0285デフォルトの名無しさん
2009/10/22(木) 09:45:160286デフォルトの名無しさん
2009/10/23(金) 11:15:11めんどくせー
0287デフォルトの名無しさん
2009/10/23(金) 21:19:15CMake関連のファイルが大量に削除されたり変更されたりしていたので、
試しにプロジェクトを作成しようとしたらエラーになってしまったのですが
ビルド可能なのですか?
0288デフォルトの名無しさん
2009/10/23(金) 22:00:59ttp://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
0289デフォルトの名無しさん
2009/10/24(土) 13:15:03http://www.boost.org/doc/libs/1_39_0/libs/wave/doc/quickstart.html
にある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");
な風にしたけど・・・
0290デフォルトの名無しさん
2009/10/24(土) 16:46:27別サイトから、CMakeの分だけダウンロードするようになった
0291デフォルトの名無しさん
2009/10/24(土) 17:07:410292デフォルトの名無しさん
2009/10/24(土) 17:11:270293デフォルトの名無しさん
2009/10/24(土) 17:58:440294デフォルトの名無しさん
2009/10/24(土) 18:01:270295デフォルトの名無しさん
2009/10/24(土) 20:16:130296デフォルトの名無しさん
2009/10/24(土) 20:26:110297デフォルトの名無しさん
2009/10/24(土) 20:48:02bjamがあるじゃん。
Boostのビルドにおいて
CMakeがbjamを上回ることってなんかあるの?
特に>>292
0298デフォルトの名無しさん
2009/10/24(土) 21:13:382秒でドキュメントは読めない
0299デフォルトの名無しさん
2009/10/24(土) 21:18:030300デフォルトの名無しさん
2009/10/24(土) 21:21:110301デフォルトの名無しさん
2009/10/24(土) 21:22:05ところで、なんで>>296みたいなアホがいるんだ。
ほんとに質が低いなこのスレは。
0302デフォルトの名無しさん
2009/10/24(土) 21:36:33y-hamigakiさんの書いた資料のおかげというのもあるけど
CMakeはprecompiled headerを使うのだけでも一苦労、
flymake用のsyntax check用の高速にビルドできるタスクを定義するのは並大抵のもんじゃないときた
cmake .とかするだけの使い方するなら問題ないけどな
0303デフォルトの名無しさん
2009/10/24(土) 22:19:51なるほど。
なら可能だ
0304デフォルトの名無しさん
2009/10/25(日) 00:26:41自動的にdebug/releaseビルドのobjファイルを別場所に配置してくれるので切り替えが楽という利点があるな。
逆に問題はドキュメントが異様に少ないこと。
でもビルドに必要な大抵のことは(きちんとドキュメント化されているかは別として)できるかな。
0305デフォルトの名無しさん
2009/10/27(火) 05:02:38size1 == size2
terminate called after throwing an instance of 'boost::numeric::ublas::bad_argument'
what(): bad argument
Aborted
このエラーの対処法教えてください
0306デフォルトの名無しさん
2009/10/27(火) 07:00:590307デフォルトの名無しさん
2009/10/27(火) 11:27:08ありがとうございます
参考にしてみます
0308デフォルトの名無しさん
2009/10/28(水) 23:41:26struct 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 で書けるのでしょうか?詳しい人教えて下さい・・・
0309デフォルトの名無しさん
2009/10/29(木) 00:03:07これでどないでしょ。
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))));
0310デフォルトの名無しさん
2009/10/29(木) 00:16:060311デフォルトの名無しさん
2009/10/29(木) 06:55:58std::count_if(bars.begin(), bars.end(),
_(pred,
_(&hoge::foo,
_(&bar::fuga,
_1))));
#undef _
0313デフォルトの名無しさん
2009/10/29(木) 14:22:38[] (bar& x) -> bool { return pred(x.fuga().foo()); })
0314デフォルトの名無しさん
2009/10/29(木) 14:24:00std::count_if(bars.begin(), bars.end(),
[] (bar& x) { return pred(x.fuga().foo()); })
0315デフォルトの名無しさん
2009/10/30(金) 22:23:22fixや仕様変更が入っています。
ttp://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
0316デフォルトの名無しさん
2009/10/30(金) 22:24:35Fix 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
0317デフォルトの名無しさん
2009/10/30(金) 22:27:06[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
0318デフォルトの名無しさん
2009/11/06(金) 22:04:19以下更新内容の一部
[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]
https://svn.boost.org/trac/boost/ticket/3579
[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の配布も始まっています。
ttp://sourceforge.net/projects/boost/files/
0319デフォルトの名無しさん
2009/11/07(土) 05:42:370320デフォルトの名無しさん
2009/11/10(火) 10:06:18struct 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";
}
0321デフォルトの名無しさん
2009/11/10(火) 10:07:50>>320 のプログラムは、lambdaか否かを判断するmeta function を作ろうとした
のですが、???? の部分で困っています。
boost::lambda::_1 * 2 とある時、引数の型が知りたい。
でも、これは無理ですよね。
簡単言うと、is_lambda_implをlambda式に応じて呼び分けしたいのです。
何かいい案ないですか?
0322デフォルトの名無しさん
2009/11/10(火) 10:14:14is_lambda_impl<F>::value じゃないの?
そうじゃなければ何がしたいのかよくわからん。
0323デフォルトの名無しさん
2009/11/10(火) 10:26:39それじゃ駄目ポ。
template<class F>
struct is_lambda_impl
{
static const bool value = false;
};
にいっちゃいます。
0324デフォルトの名無しさん
2009/11/10(火) 10:29:47なら ???? の部分じゃなくて特殊化ができてないんじゃないの?
0325デフォルトの名無しさん
2009/11/10(火) 10:34:21あんまり、そこに拘る必要はないです。
lambdaか否かを判断するmeta function が作れればおk。
0326デフォルトの名無しさん
2009/11/10(火) 10:40:42F(????)としてるのは、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) の様な形になると思う。
0327デフォルトの名無しさん
2009/11/10(火) 11:00:54template<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;
}
0328デフォルトの名無しさん
2009/11/10(火) 11:01:01まずは、何か lambda expression だけの特性を探すことだね。
unlambda してみて違う型が返ってくるようなら true になる関数とか?
0329デフォルトの名無しさん
2009/11/10(火) 11:23:13unlambdaすると false になります。
0330デフォルトの名無しさん
2009/11/10(火) 20:24:31駄目ポ。
template<template <class f> class T, class F>
bool is_lambda_(T<F>)
全て↑が選択されて、falseになる
0331デフォルトの名無しさん
2009/11/11(水) 01:34:45遊びだとか実装方法は問わないとか言ってるから、 unlambda() のソースから
扱いを分けてるところパクってきたほうが早そう。
0332デフォルトの名無しさん
2009/11/11(水) 11:41:35http://codepad.org/2lcnEjvI
0333デフォルトの名無しさん
2009/11/11(水) 17:16:17http://codepad.org/LUAbunUM
0334デフォルトの名無しさん
2009/11/13(金) 23:53:06ttp://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.
0335デフォルトの名無しさん
2009/11/13(金) 23:53:49Changed 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も併せて更新致しました。
0336デフォルトの名無しさん
2009/11/14(土) 15:45:45boost/function_types/detail/synthesize_impl/arity20_0.hpp
boost/function_types/detail/synthesize_impl/arity30_0.hpp
がおかしくね?
なんかソースが途中で切れたみたいになってる。
手元で確認できるかぎりでは、svn56164 で正常。
svn57242 ではおかしくなってる。
0337デフォルトの名無しさん
2009/11/15(日) 02:14:23こっちはそんなことないが。
0338デフォルトの名無しさん
2009/11/15(日) 09:23:37ちゃんとSubversion使ってる?
0339デフォルトの名無しさん
2009/11/15(日) 10:12:48ほんとだ。
リビジョン番号 56305以降がおかしい。
stefanが更新してる
0340デフォルトの名無しさん
2009/11/15(日) 11:08:030341デフォルトの名無しさん
2009/11/16(月) 16:27:52Boost.Propertyを使ったお試しコードを書いたのですが、Property用のメンバーをstringにすると以下の様な
エラーになるんだけど、原因分かる人いる?
error C2679: 二項演算子 '<<' : 型 'Person::_PropertyNamaeImpl_' の右オペランドを扱う演算子が見つかりません (または変換できません)。 e:\property_test.cpp 57
property_get::operator return_type()まで来ないので、ADL系の様な気がする・・・
なぜ、来ないのか分からない。
0342デフォルトの名無しさん
2009/11/18(水) 06:38:03渡せますが、tr1の物だとダメなようです。
これらのようにtr1とboostの物での違いの、一覧みたいなのは無いでしょうか?
0343デフォルトの名無しさん
2009/11/20(金) 23:35:32Spirit: 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
0344デフォルトの名無しさん
2009/11/20(金) 23:36:07Fixed 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.
以上更新内容の一部
ttp://booster.x0.to/
0345デフォルトの名無しさん
2009/11/21(土) 01:53:49New 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.
0346デフォルトの名無しさん
2009/11/24(火) 01:34:40このストリームを外から見たときはboostを使ったように見えないように、ダウンキャストしてostreamか何かに入れて置きたいのですが、どうにもうまくいきません。
どうしたら良いのでしょうか。
std::ostream a = boost::iostreams::stream<boost::iostreams::null_sink>();
こんなことがしたいです。
0347デフォルトの名無しさん
2009/11/24(火) 02:01:44たぶん、C++0xだとそれでコンパイルできると思う。
とりあえず現状ではtypedef boost::iostreams::stream<hogehoge> my_stream_type;みたいにごまかすくらいしかないと思う。
もちろん、オブジェクトを関数の引数として渡すときには、もちろんstd::ostream&やstd::istream&で受け取れるけど。
0348346
2009/11/24(火) 02:16:53解答ありがとうございます。出来ませんか・・・。
0349デフォルトの名無しさん
2009/11/24(火) 05:18:50std::ostream& を返す取得関数で公開すれば具象型はいちおう隠蔽できるけど。
それで不都合あったり?
0350デフォルトの名無しさん
2009/11/24(火) 18:34:11以下のように、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());
0351デフォルトの名無しさん
2009/11/27(金) 19:25:51マイナーバージョンアップ版が出るかもしれませんね。
ttp://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にアップデート致しました。
0352デフォルトの名無しさん
2009/12/03(木) 02:46:03デフォルト値があるだけで、厳密には1引数じゃないから?
0353デフォルトの名無しさん
2009/12/03(木) 03:12:25があるね
0354デフォルトの名無しさん
2009/12/03(木) 13:33:43たとえばSTLが違う場合(VC++で標準STLかSTLPortか)にリンクしても問題ない?
標準STLでもセキュリティ強化の#defineを指定すると実装内容が変わったりするし・・・
0355デフォルトの名無しさん
2009/12/03(木) 17:13:48問題があるかどうかは知らんけどとりあえず自前でビルドして使った方がいいと思う
0356デフォルトの名無しさん
2009/12/04(金) 04:02:55あー、intrusive_ptrに対応してるクラスなら、
そのポインタから安全に変換できるはずだからexplicitは必要ないってことか。
0357デフォルトの名無しさん
2009/12/04(金) 19:24:17ttp://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にアップデート致しました。
0358デフォルトの名無しさん
2009/12/05(土) 14:43:240359デフォルトの名無しさん
2009/12/05(土) 14:45:35sankusu otsu
0360デフォルトの名無しさん
2009/12/07(月) 18:00:18↓こんな感じで
1>LINK : fatal error LNK1104: ファイル 'libboost_thread-vc90-mt-sgd-1_40.lib' を開くことができません。
同じcppファイルの中でも、他のやつ(unordered_mapとか)は問題なく使えてるのに、threadだけでます。
だれか解決法を知っている方がいたらご教授を……orz
0361デフォルトの名無しさん
2009/12/07(月) 18:03:23そのままだとヘッダだけで使えるライブラリしか使えないよ。
0362デフォルトの名無しさん
2009/12/07(月) 18:47:25解決しました。
インストールはしていたのですが、どうやらライブラリのパス指定が間違っていたようです。
標準に指定されるディレクトリから変更した場合、そことは別の場所にライブラリフォルダができてしまうようで……。
コマンドプロントのメッセージを追ってたら気付くことができました……。
どうも、ありがとうございました。
0363デフォルトの名無しさん
2009/12/08(火) 23:50:50では警告が出るから
#include <boost/spirit/include/classic_functor_parser.hpp>
を使うと、
error: expected class-name before '<' token
やらのエラーで今度はコンパイル出来ない。(#^ω^)
0364デフォルトの名無しさん
2009/12/09(水) 00:18:19namespace が boost::spirit::classic になったのか。失礼した。
0365デフォルトの名無しさん
2009/12/09(水) 06:37:45俺もだ。
0366デフォルトの名無しさん
2009/12/10(木) 04:16:080367デフォルトの名無しさん
2009/12/11(金) 13:19:19たとえばこんなふうに
class Hoge{
public:
void run();
void fanc(int x, int y);
}
Hoge tmp;
thread thr_tmp(bind(&Hoge::run, &tmp));
runが引数を取らないメンバ関数ならこれで動きますが、
メンバ関数が引数を取る場合(上の例だとfancを実行する場合)はどのようにすればいいのでしょうか?
自分で色々調べてためしてみましがた、尽くコンパイルエラーがでます……orz
0368デフォルトの名無しさん
2009/12/11(金) 14:00:00でx=10, y=20になるが
あとfancじゃなくてfuncではなかろうか
0369デフォルトの名無しさん
2009/12/11(金) 14:02:12上記でだめならコンパイラ依存問題かも
0370デフォルトの名無しさん
2009/12/11(金) 14:19:44解決しました。
ありがとうございました!
0371デフォルトの名無しさん
2009/12/12(土) 09:02:350372デフォルトの名無しさん
2009/12/12(土) 10:10:200373デフォルトの名無しさん
2009/12/13(日) 09:58:14#include <boost/serialization/static_warning.hpp>
template<typename T>
struct hoge {
static int const i = 100;
static bool const b = i < 0;
BOOST_STATIC_WARNING(b);
};
typedef hoge<int> hoge_t;
hoge_t h;
hoge がテンプレートだと BOOST_STATIC_WARNING が働かない。(警告が出ない)
hoge が非テンプレート(ただの struct )だと意図通り警告が出る。
BOOST_STATIC_WARNING 以外でも、boost::mpl::print などでも同様。
0374デフォルトの名無しさん
2009/12/13(日) 10:23:51static int const i = 100;
static bool const b = i < 0;
hoge() { BOOST_STATIC_WARNING(b); };
};
これでどうだろう
0375デフォルトの名無しさん
2009/12/14(月) 00:16:470376デフォルトの名無しさん
2009/12/14(月) 00:23:330377デフォルトの名無しさん
2009/12/14(月) 14:17:23stirng str;
std::wstring wstr;
wstr = boost::lexical_cast<std::wstring>(str);
lexical_cast.hpp(590) : error C2679: 二項演算子 '<<' : 型 'const src' の右オペランドを扱う演算子が見つかりません (または変換できません)。
1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(653):
'std::basic_ostream<_Elem,_Traits> &std::operator <<<wchar_t,std::char_traits<wchar_t>>(std::basic_ostream<_Elem,_Traits> &,const char *)' [引数依存の照合を使用して検出しました]、
1> with
1> [
1> _Elem=wchar_t,
1> _Traits=std::char_traits<wchar_t>
1> ]
以下似たようなメッセージがずらずらと……。
ちなみに最終的にやりたいことはstring型の文字列をwstring型にキャストし処理した後、
const char*に変換して、関数にわたすことです。
wstr.c_str()ではwchar_t型に成ってしまうので、いったんstringに変換してからc_str()でなんとかしようと方針を立てたらエラーがでて……orz
0378デフォルトの名無しさん
2009/12/14(月) 14:37:08stringとwstringの同時使用ができないのでは
0379デフォルトの名無しさん
2009/12/14(月) 14:40:26>stirng str;
string str
ですね。
本筋ではないのですが一応元ソースではちゃんとしてます。
0380デフォルトの名無しさん
2009/12/14(月) 14:44:19つまり、stringをwstringにキャストしようとしても、
そもそもlexical_cast内ではふたつを同じ型として扱ってるので、
キャストできないということですか……?
0381デフォルトの名無しさん
2009/12/14(月) 14:45:55内部処理ストリームがWide変換/逆変換をサポートしていない限り非対応ということに。
0382デフォルトの名無しさん
2009/12/14(月) 14:55:34なるほど、ありがとうございました。
設計をみなおすか……。
全部2バイト文字にしたあと処理できたら楽になるのになぁ。
ユニコードは三点リーダーが汚くなるから使いたくないし……。
0383デフォルトの名無しさん
2009/12/14(月) 15:07:30ttp://www.boost.org/doc/libs/1_41_0/libs/conversion/lexical_cast.htm
にあるサンプル
>>void log_errno(int yoko)
>>{
>> log_message("Error " + boost::lexical_cast<std::string>(yoko) + ": " + strerror(yoko));
>>}
yoko?
要項?違うか
0384デフォルトの名無しさん
2009/12/14(月) 21:23:32というlibraryがあるらしいが、もう正規のものなの?
いつの間に採用されたんだ。
0385デフォルトの名無しさん
2009/12/15(火) 18:38:350386デフォルトの名無しさん
2009/12/15(火) 18:40:34ありがとう。
0387デフォルトの名無しさん
2009/12/15(火) 19:04:020388デフォルトの名無しさん
2009/12/16(水) 22:37:56余談だけど
ttp://www.boost.org/doc/libs/1_41_0
ここの First Release 見ればいつから正規かは分かる。
しかし Property Tree のレビューって 2006 年 4 月だったんだな。
0389373
2009/12/17(木) 08:08:52Boost.Serialization の BOOST_STATIC_WARNING と比較して、
>>373のような条件下でも警告が働くし、
クラステンプレート内でも typename 無しで依存名を書ける。
VC++2008以外の環境は知らん。
#include <boost/mpl/bool.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/preprocessor/cat.hpp>
#define MY_MPL_WARNING(PRED) \
static bool const BOOST_PP_CAT(mpl_warning_, __LINE__) = sizeof(boost::mpl::assert_arg((void (*) PRED)0, 1))
#define MY_STATIC_WARNING(B) \
MY_MPL_WARNING((boost::mpl::bool_<B>))
// テスト
template<typename T>
struct hoge {
static int const i = 100;
static bool const b = i < 0;
MY_STATIC_WARNING(b); //おk
MY_STATIC_WARNING(boost::is_float<boost::mpl::identity<T>::type/*依存名*/>::value); //おk
};
typedef hoge<int> hoge_t;
hoge_t h;
0390デフォルトの名無しさん
2009/12/17(木) 12:20:07やり方が悪いのでしょうか? どなたかご教授お願いします。
typedef boost::unordered_set<int,boost::hash<int>,greater<int>> u_set_g;
u_set_g data;
data.insert(1);
data.insert(2);
for(u_set_g::iterator it=data.begin(), itEnd=data.end(); it!=itEnd; it++)
cout<<*it<<endl;
data.erase(2);
for(u_set_g::iterator it=data.begin(), itEnd=data.end(); it!=itEnd; it++)
cout<<*it<<endl;
0391デフォルトの名無しさん
2009/12/17(木) 12:53:120392デフォルトの名無しさん
2009/12/17(木) 13:48:31判定するメタ関数はありますか?
is_castable_into<S, T>::value
的な使い方ができる物です。
0393デフォルトの名無しさん
2009/12/17(木) 13:50:37おぉ、勘違いしておりました。
unordered_setはstd::setの様に初めから逆ソートは出来ないのでしょうか?
0394デフォルトの名無しさん
2009/12/17(木) 13:53:120395デフォルトの名無しさん
2009/12/17(木) 13:59:39is_convertible<From, To>
0396デフォルトの名無しさん
2009/12/17(木) 14:09:56ありがとうございます。
0397デフォルトの名無しさん
2009/12/17(木) 14:43:000398デフォルトの名無しさん
2009/12/17(木) 14:45:230399デフォルトの名無しさん
2009/12/17(木) 14:49:030400デフォルトの名無しさん
2009/12/17(木) 16:11:12stringの中身がutf8ならto_utf8、from_utf8で
wstringと相互変換できるぞ。
sjisは扱えないけど、ASCIIとは互換性がある。
0401デフォルトの名無しさん
2009/12/17(木) 17:22:44ceilとfloorのオーバーロード関数の呼び出しを解決することができないという
エラーが出るのですが、何か解決策はありますでしょうか?
環境はVisual C++ 2008、Boost 1.41.0です。
0402デフォルトの名無しさん
2009/12/18(金) 01:47:54エラーメッセージは正確に。
コピペ推奨。
0403デフォルトの名無しさん
2009/12/18(金) 04:29:39#if defined(_MSC_VER) && _MSC_VER >= 1200 /* VC++ 6.0*/
#if defined(_MSC_VER) && _MSC_VER >= 1020 /* VC++ 4.2*/
の二通りがある。
gccでもたしか#pragma once使えたはずだけど、
MSVC限定なのは何か理由があるんだろうか?
0404デフォルトの名無しさん
2009/12/18(金) 05:19:050405デフォルトの名無しさん
2009/12/18(金) 05:39:26GCCはインクルードガードだけで十分
0406403
2009/12/18(金) 06:17:18#pragma once相当の処理をするとかどこかで読んだ。納得。
0407デフォルトの名無しさん
2009/12/18(金) 13:55:42失礼しました。
error C2668: 'ceil' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
c:\program files (x86)\boost_1_41_0\boost\numeric\conversion\converter_policies.hpp
error C2668: 'floor' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
c:\program files (x86)\boost_1_41_0\boost\numeric\conversion\converter_policies.hpp 41 karaokeThread
です。
0408デフォルトの名無しさん
2009/12/18(金) 14:15:330409デフォルトの名無しさん
2009/12/18(金) 14:17:44まだ変に省略してないか?
VC++ だとテンプレート引数の情報とかエラーメッセージに出たような・・・。
常套手段だけど、同じエラーを出す最小のソースを作ってみるといい。
0410デフォルトの名無しさん
2009/12/18(金) 14:24:130411401
2009/12/18(金) 22:53:49のみエラーが出るようなので、そこだけstatic_castにしました。
どうもお騒がせしました。
0412デフォルトの名無しさん
2009/12/19(土) 02:08:38同じく初めてビルドエラー無しでフルビルドが出来ました。
ttp://booster.x0.to/
以下更新内容の一部
[Program_options]
consistent handling of namespace std
[Spirit]
unicode support
Spirit: fixed include guard conflict (fixes #3724)
[Graph]
Factored out declspec code; added BOOST_GRAPH_SOURCE where necessary
[Iostream]
If a write is going to go past the end of the restricted area,
write up to the end before throwing an exception.
[Uuid]
Fixed name_generator for different sizes of wchar_t
[Serialization]
1. Fixed memory leak in shared_ptr loading
2. Fixed error in polymorphic archive implementation
Speed up loading of ordered collections
[Smart_ptr]
Avoid static destruction order issues with quick_allocator.
[Proto]
fix BOOST_PROTO_EXTENDS to work with elaborated types
[Xpressive]
disable proto's unary operator& for basic_regex objects, references #3712
[Fusion]
corrected reverse_view
[Gil]
Added gil namespace prefix to at_c<...> calls.
[Regex]
Symbian patches. Fixes #3764. Fixes #3763.
0413デフォルトの名無しさん
2009/12/19(土) 05:04:38いつも乙。
ところで列記してある更新内容のリストはどこで参照できますか?
0414デフォルトの名無しさん
2009/12/19(土) 06:58:03TortoiseSVN上の更新情報をテキストデータとして羅列した状態ですのであまり読み易くはありません。
公式サイトの下記ページにも更新情報がありますが、sandboxの更新と一緒になっている為少々読み辛いです。
Boost-Commit mailing page: By Subject
ttp://lists.boost.org/boost-commit/2009/12/subject.php
ローカルリポジトリを構築して管理ソフトからログを読むのが、一番整頓されていて分かり易いと思います。
0415デフォルトの名無しさん
2009/12/20(日) 05:18:17ありがとうございます、参考になります。
ところで、VC9 にて
#include <boost/utility/value_init.hpp>
#include <boost/wave/util/cpp_include_paths.hpp>
をこの順にインクルードするとコンパイルエラーになります。
>e:\library\c++\boost\boost_1_42_vc2008_svn58453\boost\aligned_storage.hpp(79) : error C2872: 'detail' : あいまいなシンボルです。
> 'boost::detail' である可能性があります。
> または 'boost::multi_index::detail'
>e:\library\c++\boost\boost_1_42_vc2008_svn58453\boost\aligned_storage.hpp(53) : error C2872: 'detail' : あいまいなシンボルです。
> 'boost::detail' である可能性があります。
> または 'boost::multi_index::detail'
おそらく aligned_storage.hpp 内のソースで
boost::detail::aligned_storage のスコープで detail::ほげほげ と(boost::detail のつもりで)しているので
他スコープの detail 名前空間と衝突しているのかと。
Boost 1.40〜1.42 で確認。
0416デフォルトの名無しさん
2009/12/20(日) 07:18:45gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) + Boost 1.40 で再現しない。
Boost trac の ticket には無さげ。
恐らく↓あたりの VC のバグだと思う。
VC++ 8.0 reports unexisting ambiguity in certain context having a using directive
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=311885
あと、細かいけど 1.42 は未リリースだから現時点(あるいは特定リビジョン)での trunk でという表現が
正しいと思う。
0417デフォルトの名無しさん
2009/12/20(日) 09:50:29ありがとうございます、参考になります。
0418415
2009/12/20(日) 15:02:25俺ライブラリのヘッダをまとめてインクルードしたのをコンパイルしたら、
条件によって出たり出なかったりするようなエラーが出るわ出るわ。
VC9 + Boost (1.40 ~ svn58453)
・ boost::operators を使ったクラス Operatable を定義
・ 適当なテンプレートクラス Overloaded<T> を定義
・ Overloaded<T>& を引数にとる、グローバルな & (アドレス)演算子オーバーロードの関数テンプレートを定義
・ boost::throw_exception( ) の使用
この条件が揃うとエラーが出る。
>e:\library\c++\boost\boost_1_42_vc2008_svn58453\boost\throw_exception.hpp(69) : error C3767: '&': 候補の関数はアクセス可能ではありません。
> 'e:\library\c++\boost\boost_1_42_vc2008_svn58453\boost\operators.hpp(260)' の friend 関数である可能性があります : '&' [引数依存の照合を使って検出される可能性があります]
> e:\project\vc9\test2\test2\main.cpp(22) : コンパイルされたクラスの テンプレート のインスタンス化 'void boost::throw_exception<std::exception>(const E &)' の参照を確認してください
> with
> [
> E=std::exception
> ]
以下、調べたかぎり最小のコード。
#include <exception>
#include <boost/operators.hpp>
#include <boost/throw_exception.hpp>
class Operatable : private boost::operators<Operatable> { };
template<typename T> class Overloaded { };
template<typename T> Overloaded<T>* operator&(Overloaded<T>& v) { return 0; }
void ThrowException() { boost::throw_exception(std::exception()); }
// ThrowException() の代わりにこの関数を定義してもエラーになる
// どうやら boost::exception_detail::clone_impl<T> の使用がまずいらしい
//void TestExceptionDetail() { boost::exception_detail::clone_impl<std::exception> c((std::exception())); }
0419デフォルトの名無しさん
2009/12/20(日) 16:53:44boost::operators<Operatable> の部分が boost::integer_arithmetic<Operatable> などなら問題ない。
どうやら boost::andable<Operatable> が問題らしい。
でも andable って (Lhs & Rhs) の形だよね?
アドレス演算子との絡みでおかしくなるのがようわからん。
C3767 について↓でもそれらしい話が出てるけど(ADL関連)なんとも。
ttp://www.freeml.com/cppll/13477/latest
0420デフォルトの名無しさん
2009/12/20(日) 22:53:17> >>415 ticket に挙げたいけど英語力皆無で無理げ。
大丈夫だ。我々には C++ という共通語がある!
とりあえず boost/wave/util/cpp_include_paths.hpp の中にある using namespace boost::multi_index; 直下の
get (2ヶ所)を boost::multi_index::get に qualify してやれば #include のみの場合はエラーは出なくなったけど
これで正常動作するのかは分からない。
要因としては >416 のバグのせいっぽいね。
>以下、調べたかぎり最小のコード。
やっぱり gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) + Boost 1.40 で再現しない。
実際のコードだとうまく行かないかもしれないけど、
namespace my {
class Operatable : private boost::operators<Operatable> { };
template<typename T> class Overloaded { };
template<typename T> Overloaded<T>* operator&(Overloaded<T>& v) { return 0; }
void ThrowException() { boost::throw_exception(std::exception()); }
}
って感じで namespace に閉じ込めたら通ったりしない?
0421デフォルトの名無しさん
2009/12/22(火) 21:38:43今現在uBLASライブラリを使ってLU分解を行っています
しかし,同じ動作を数百回回してると下記のエラーが出てしまいます
毎回違うループ回数でエラーが起きているみたいなんですが,何故起こってしまうのかよくわかりません
分かる方いらっしゃいますか?
*エラーメッセージ
Check failed in file /cygdrive/D/boost_1_39_0/boost/numeric/ublas/lu.hpp at line 276:
detail::expression_type_check (prod (triangular_adaptor<const_matrix_type, upper> (m), e), cv2)
Error while dumping state (probably corrupted stack)
0422デフォルトの名無しさん
2009/12/22(火) 21:57:390423デフォルトの名無しさん
2009/12/22(火) 21:59:521.40で試してみたらどう
0424デフォルトの名無しさん
2009/12/22(火) 22:22:56ありがとうございます
とりあえず、アップデートして行ってみましたが状況変わらずでした
LU分解の後退代入で配列の不正アクセスか,配列が破壊されてるかどちらかが起きてるのはわかるんですが
毎回違うタイミングで起きるので原因が良くわからないです
代入する値はループ毎に変わりますが乱数を使ってるわけではないのでエラーを吐き出すとしたら同じループ回数だとは思うんです
0425デフォルトの名無しさん
2009/12/22(火) 22:39:030426デフォルトの名無しさん
2009/12/23(水) 01:01:440427デフォルトの名無しさん
2009/12/23(水) 01:06:070428デフォルトの名無しさん
2009/12/23(水) 05:00:13もうエラーの内容も覚えていないんだけど
uBLASつかってるシングルスレッドのプログラムを
問題を複数に分けてマルチスレッドで分散してやるようにしたらわけのわからないエラーが出始めた
納期があったから細かく調べずにマルチプロセスで逃げたw
まったく参考にならんけど思い出した
0429デフォルトの名無しさん
2009/12/26(土) 00:17:37ttp://booster.x0.to/
以下更新内容の一部
[Regex]
Improve recursion branch-prediction.
[Spirit]
Spirit: comment typo fixes
Spirit: minor test adjustment
Added note to fix the thing
Spirit: expanded the quick hack to include strings
Spirit: added new Karma example
Spirit: little endian binary test fix
[Multi_index]
handled serialization of non default constructible values
[Selialization]
Fix plugin test/demo
0430デフォルトの名無しさん
2009/12/29(火) 17:07:19ttp://webdocs.cs.ualberta.ca/~graphics/software/boost/boost/numeric/ublas/traits.hpp
ここに
boost::complex
というテンプレートがあるのですが、これはなんでしょうか?
昔std::complexが標準にない時代にboostに同等のものがあったとか、
そういうことはありますか?
0431デフォルトの名無しさん
2010/01/02(土) 09:11:03win2000+VisualStudio2005+Microsoft Platform SDK for Windows Server 2003 SP1で、
Boost1.41をダウンロードしてきてbootstrapとbjamを実行し、
http://www.boost.org/doc/libs/1_41_0/libs/filesystem/example/simple_ls.cpp
を試しにコンパイルしてみたのですが、
LINK : fatal error LNK1104: ファイル 'libboost_filesystem-vc80-mt-gd-1_41.lib' を開くことができません。
というエラーが出ます。
指定されたファイルはC:\Boost\bin.v2\libs\filesystem\の下層にちゃんとあるのですが、
これはコンパイラにパスが通ってないということでしょうか?
解決方法を知っている方がいましたら教えていただきたいです。
現在のVisualStudioの設定は以下のとおりです。
オプション→プロジェクトおよびソリューション→VC++ディレクトリ→インクルードファイルにC:\Boostを追加
ライブラリファイルにC:\Boost\bin.v2\libsを追加
0432デフォルトの名無しさん
2010/01/02(土) 10:08:410433デフォルトの名無しさん
2010/01/02(土) 11:58:11>(中略)
>ライブラリファイルにC:\Boost\bin.v2\libsを追加
bin.v2 の下は未インストール状態のものなのでその下層のパスまでちゃんと指定するか、install して
一ヶ所にまとめられたディレクトリを指定するかどっちかだと思われ。
0434デフォルトの名無しさん
2010/01/02(土) 12:34:19bjamのオプション次第だけど、普通はstage\libだろ。
0435デフォルトの名無しさん
2010/01/02(土) 16:39:47ライブラリファイルをC:\Boost\stage\libに変更したところ、コンパイルが通るようになりました。
回答してくださった方々、本当にありがとうございます。
0436デフォルトの名無しさん
2010/01/03(日) 11:53:28MPICH2(Win32 64bit)をインストールしても
binフォルダにmpichコマンドやmpeコマンドが見当たらない。
そういうもの?
ttp://www.kmonos.net/alang/boost/classes/mpi.html
ここの手順そのままで問題ない?
0437デフォルトの名無しさん
2010/01/03(日) 18:56:13俺はやったことないからわからんが、そのページに
>MPICH2 では手元の環境ではうまく動かず…。
って書いてあるのに、そのままで問題ないかと言われても…。
0438デフォルトの名無しさん
2010/01/04(月) 13:41:42MPIの使い方はよく分かりません。
Boost 1.41 + MPICH2で試してみましたが、ビルドまでは通るものの実行時に例外エラーが発生しますね。
0439デフォルトの名無しさん
2010/01/04(月) 13:58:53ttp://booster.x0.to/
以下更新内容の一部
[Fusion]
associative forward iterators in example and docs
[Random]
Attempt to fix ranlux failures
Try to get more information out of the failing tests.
[Spirit]
Spirit: fixing a problem in sequences if the attribute is a container of containers, more test cases
Spirit: accounting for changed fusion::fold parameter sequence in new Boost version
Spirit: fixed SA detection for karma::maxwidth
[Iostreams]
Don't throw if seeking the end of the restricted area of a file.
Add dummy returns after calling throw_exception.
[Type_traits]
Fixes #3800.
[Circular_buffer]
circular_buffer: constant complexity of clear method and destructor
[Asio]
Windows needs the OVERLAPPED structure to be valid until both the initiating
function call has returned and the completion packet has been delivered.
Don't block signals while performing system calls, but instead restart the
calls if they are interrupted.
Add boost_ prefix to extern "C" thread entry point function. Refs #3809.
Add a workaround for some broken Windows firewalls that make a socket
appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1.
[Functional]
Rename namespace BOOST_HASH_DETECT_FLOAT_FUNCTIONS to lower case for consistency.
[Uuid]
optimized seed_rng
optimized string_generator
0440デフォルトの名無しさん
2010/01/05(火) 12:51:23multi_array_ref や const_multi_array_ref は何のために設計されているのでしょうか?
参照では問題がある場合に使うことを想定しているのでしょうか?
0441デフォルトの名無しさん
2010/01/05(火) 16:41:320443デフォルトの名無しさん
2010/01/05(火) 19:28:58名前的にはauto_ptrに対するauto_ptr_refとかと同じ用途なんじゃない?
0444デフォルトの名無しさん
2010/01/05(火) 19:33:560445デフォルトの名無しさん
2010/01/05(火) 20:00:510446デフォルトの名無しさん
2010/01/05(火) 20:11:440447デフォルトの名無しさん
2010/01/05(火) 20:12:210448デフォルトの名無しさん
2010/01/05(火) 20:14:58> 実装読まずに適当に推測すると
> 名前的には
現実的にはこれができるのが一番いいよね。
むずかしいけどさ。
俺 名前づけのセンスないし。
0449デフォルトの名無しさん
2010/01/06(水) 22:48:220450デフォルトの名無しさん
2010/01/06(水) 23:52:48結局 何が良くなったのでしょうか?
コンパイル速度は悪くなったと思いますが、
実行時速度とかでしょうか?
0451デフォルトの名無しさん
2010/01/07(木) 12:19:060452デフォルトの名無しさん
2010/01/07(木) 12:43:560453デフォルトの名無しさん
2010/01/07(木) 13:08:45weak_ptrのlock関数経由(もしくはshared_from_this関数)と
'=' での直接代入経由で参照カウントの挙動に変化がなかったけど
これってどっちでもいいの?
BoostはVer1_40_0です。
0454デフォルトの名無しさん
2010/01/07(木) 13:11:05あたりまえじゃないか。
挙動が変わるはずだという理屈があるなら言ってみれ。
0455デフォルトの名無しさん
2010/01/07(木) 13:21:25実行結果を見れば一目了然なんですが、
これですっきりしました、有難うございました。
0457デフォルトの名無しさん
2010/01/07(木) 20:42:560458デフォルトの名無しさん
2010/01/07(木) 20:45:32そうなんですか。
まさかのこれ以上の機能拡充とかですかね。
ありがとうございます。
0459デフォルトの名無しさん
2010/01/08(金) 21:17:53ttp://booster.x0.to/
以下更新内容の一部
[Unordered]
Formatting changes, mostly to fit within 80 characters.
Also, some C casts converted to static_cast.
[Spirit]
Spirit: added concept checks for qi API functions, fixed qi::match functions, added basic_istream_iterator
Spirit: added karma::auto_()
Spirit: added missing top level include file
Spirit: fix for one of the multi_pass policies
Spirit: added more tests for Karma auto_
Spirit: adding the matches.hpp[] directive
Spirit: adding tests for the matches[] directive
[Asio]
Include boost/limits.hpp rather than <limits>, to support older compilers.
Refs #3743.
Drop back to second_clock if microsec_clock is unavailable. Refs #3743.
Use sockatmark if SIOCATMARK is not defined. Refs #3743.
Disable iostreams-related functionality if BOOST_NO_IOSTREAMS is defined. Refs #3743.
Apply fix for reported excessive CPU usage under Solaris. Refs #3670.
Support platforms that don't define INET6_ADDRSTRLEN. Refs #3743.
[Wave]
Wave: updating copyrights, fixing issues introduced by latest changes to multi_pass.
[Regex]
Fix bug that effects recursive expressions combined with repeats.
Speed up the code a little,
and stop swapping stream buffers around in case that's the cause of some test failures.
[Iostreams]
More unreachable returns. This should only be a temporary workaround.
亦、libs_for_build_boost.rarも、bjam.exeをrev.58785にアップデート致しました。
0460デフォルトの名無しさん
2010/01/08(金) 22:08:02x32, x64双方共正常に動作しました。
管理者権限でコマンドプロンプトを起動して、
smpd -install
mpiexec -n 8 test.exe
です。
Boost.MPIは次回のビルドからまたMPICH2仕様に戻します。
0461デフォルトの名無しさん
2010/01/08(金) 22:18:17変換できないのですが、うまく変更できるようにするにはどうすればいいでしょうか?
0464デフォルトの名無しさん
2010/01/09(土) 17:34:080465デフォルトの名無しさん
2010/01/09(土) 17:34:14ttp://booster.x0.to/
以下追加更新内容
[Spirit]
Spirit: fixing attribute handling in sequences
[regex]
Change name of extern "C" function so it's prefixed with "boost_"
>>463
lexical_castは16進数の変換には対応しておりませんので、この辺りは如何でしょう。
文字列を数値に変換する関数 (CRT)
ttp://msdn.microsoft.com/ja-jp/library/53b7b72e(VS.80).aspx
>>465
ありがとうございます.
lexical_cast は過去に 1e+8 のような形式を変換できずがっかりした記憶が
あるのですが、いつの間にかできるようになってて驚きもしました.
0x にもいつか対応してくれると信じて待つとします.
http://stackoverflow.com/questions/1070497/c-convert-hex-string-to-signed-integer
0467デフォルトの名無しさん
2010/01/09(土) 17:55:57いつまで待っても、lexical_castでできるようにはならないだろう。
0468デフォルトの名無しさん
2010/01/09(土) 22:33:27そのリンクの最後の回答をちょい修正して
#include <iostream>
#include <boost/lexical_cast.hpp>
template<typename T>
class from_hex // For use with boost::lexical_cast
{
T value;
public:
operator T() const { return value; }
friend std::istream& operator>>( std::istream& is, from_hex<T>& outValue )
{
is >> std::hex >> outValue.value;
return is;
}
};
int main(void)
{
std::cout << boost::lexical_cast<from_hex<int> >("0x12345") << std::endl;
return 0;
}
でいいんじゃね?
0469デフォルトの名無しさん
2010/01/09(土) 22:37:510x ついてるときはそれでいいけどついてないときには使えないからな〜
中の人の対応を待ちたい
0470デフォルトの名無しさん
2010/01/09(土) 23:23:39codepad だと通るんだが。
ttp://codepad.org/nfkFKOZC
0471デフォルトの名無しさん
2010/01/10(日) 06:39:11関数の中でグローバルポインタの割り当て/開放をしてるのかね。
0472デフォルトの名無しさん
2010/01/10(日) 14:55:21CRT使うと死ぬ体質じゃないんならそれ使って実装しときゃいいんでは。
0473デフォルトの名無しさん
2010/01/10(日) 22:32:210474デフォルトの名無しさん
2010/01/12(火) 23:28:11loopbackアドレス(127.0.0.1)ではなく
DHCP等によって割り当てられているアドレスの方です.
以下のような感じでlocalhostへの接続は出来ると思うのですが
一定の範囲のIPアドレス(例えば,192.168.1.1~192.168.1.9)に対して
socketで接続を試みる時に
自分自身が範囲にあった場合にはconnectしないようにしたいと考えています.
そのため,自分のIPアドレスを情報として持っておきたいのです.
const int NUM_PORT = 7757;
boost::asio::io_service ioService;
boost::asio::ip::tcp::socket socket(ioService);
socket.connect(
boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::loopback(),
NUM_PORT));
0475デフォルトの名無しさん
2010/01/13(水) 00:08:330476デフォルトの名無しさん
2010/01/13(水) 00:11:500477デフォルトの名無しさん
2010/01/13(水) 00:18:150478デフォルトの名無しさん
2010/01/13(水) 00:24:390479デフォルトの名無しさん
2010/01/13(水) 00:26:48boostに固執する意味はないので,本質的にはその方法で解決できそうです.
ありがとうございます.
自分でサーベイしたところ
今の時点でboostでもリゾルバに頼れば出来るということが分かりました.
http://groups.google.co.jp/group/boost-list/browse_thread/thread/7142d22d86aa6bd9?pli=1
http://grayhole.blogspot.com/2009/11/boostasio-udp.html
ただ
DNS情報がないと駄目なので一部の環境では動かないことが予想されますが...
0480デフォルトの名無しさん
2010/01/13(水) 00:28:28のろのろ書いてる間にすみません.
ありがとうございます.
0481デフォルトの名無しさん
2010/01/16(土) 17:15:45std::string strと、tupleの先頭の要素が等しいものがあるかどうかを、
std::binary_searchで判定したいのですが、どうbindを使えばいいのか
分かりません。
どなたか教えていただけませんでしょうか。よろしくお願いします。
0482デフォルトの名無しさん
2010/01/16(土) 17:54:09その目的なら比較関数オブジェクトを渡してやればいいと思うけど、
↓みたいなのじゃなくでBoost.Bindを使う意味はあるの?
struct comp {
typedef boost::tuples::tuple<std::string, int, int> tuple_t;
bool operator()(tuple_t const& lhs, tuple_t const& rhs) const {
return lhs.get<0>( ) < rhs.get<0>( );
}
};
0483デフォルトの名無しさん
2010/01/16(土) 18:03:19でもbinary_searchに渡せるのは要素の値と決められてるから、bindに限らずそれは無理だね。
std::binary_search(v.begin( ), v.end( ), tuple_t(str, 0, 0), comp());
こうやるしかない。
0484デフォルトの名無しさん
2010/01/16(土) 18:11:55そんなの決まってないよ。双方向の operator () が用意されてれば問題ない。
bind じゃ無理そうだけどね。
0486デフォルトの名無しさん
2010/01/17(日) 17:08:19その目的のためにBoostを入れるのは大掛かりすぎる、と思うような人に
良い解決策はありますか?
0487デフォルトの名無しさん
2010/01/17(日) 17:11:54そういう用途で bcp っていうツールが用意されてるんだけど、
やってみると shared_ptr だけでもけっこうな依存関係になってて、
結局全部そのまま使うことにしたことがある。
0488デフォルトの名無しさん
2010/01/17(日) 17:14:11Boostを入れるったって、別に全部リンクされるわけじゃないんだから、
普通にBoost入れてshared_ptrだけインクルードするんじゃだめなの?
0489デフォルトの名無しさん
2010/01/17(日) 17:39:55shared_ptr.hppをインクルードして使えば
完成したバイナリは希望通りshared_ptrだけを使ったバイナリになるし。
0490デフォルトの名無しさん
2010/01/17(日) 17:40:360491デフォルトの名無しさん
2010/01/17(日) 17:44:470492デフォルトの名無しさん
2010/01/17(日) 17:48:33だがそれはさておきboostの一部分だけ取っていじったのが認められるんなら
boostそのものだって認められるだろ?
やっぱそのままの方が良いと思うんだぜ。
0493デフォルトの名無しさん
2010/01/17(日) 18:00:35勝手にshared_ptr以外のライブラリをiincludeするのを避けたいんだろ
0494デフォルトの名無しさん
2010/01/17(日) 18:07:190495デフォルトの名無しさん
2010/01/17(日) 18:50:55自分もboost入れる前はそう思ってた
0496デフォルトの名無しさん
2010/01/17(日) 19:05:31だが世の中には色々な(往々にして訳分からんand/or間違った)理由で「Boostは
ちょっと」って奴もいるからなぁ
他人のコードでバグ出た時ってマジきついしー、みたいに言われた時は、そんなら
標準ライブラリも普通にバグ出るから使うなよって思った
0497デフォルトの名無しさん
2010/01/17(日) 19:15:410498デフォルトの名無しさん
2010/01/17(日) 20:17:47そういうのがいると、バージョン管理ソフトさえ入れられない。
0499デフォルトの名無しさん
2010/01/17(日) 20:37:11心配要らないよ。
0500デフォルトの名無しさん
2010/01/17(日) 21:29:34まず数十行程度の自作スマートポインタから始める。
それで事足りればそれでおしまい。
それじゃ足りないと頭を抱えた時になって初めて確信を持ってshared_ptrを使う。
0501デフォルトの名無しさん
2010/01/18(月) 05:25:49本当に必要かどうかは考えた方が良いのかも。
特にサイズはポインタ1つあたり10倍以上増えるんだっけ?
生ポインタ
参照カウンタ
shared_ptrのvirtual関係
デリータ+virtual
ミューテックス
で。
0502デフォルトの名無しさん
2010/01/18(月) 06:43:2310倍以上という増加も必要な増加だ。
0503デフォルトの名無しさん
2010/01/18(月) 08:18:04それは最悪の場合のサイズでしょ。
virtual関係を共通化したり、atomic操作を使ったり、
実装上の工夫でもっと減らせる。
0504デフォルトの名無しさん
2010/01/18(月) 08:51:260505デフォルトの名無しさん
2010/01/18(月) 09:21:340506デフォルトの名無しさん
2010/01/18(月) 09:23:340507デフォルトの名無しさん
2010/01/18(月) 09:30:250508デフォルトの名無しさん
2010/01/18(月) 09:46:190509デフォルトの名無しさん
2010/01/18(月) 09:48:110510デフォルトの名無しさん
2010/01/18(月) 10:07:510511デフォルトの名無しさん
2010/01/18(月) 13:07:000512デフォルトの名無しさん
2010/01/18(月) 13:15:29そりゃboostのは使わないで自分で作れと言ってるのか?
0513デフォルトの名無しさん
2010/01/18(月) 13:41:260514デフォルトの名無しさん
2010/01/18(月) 14:40:300515デフォルトの名無しさん
2010/01/18(月) 14:47:02知らんけど
0516デフォルトの名無しさん
2010/01/18(月) 15:35:240517デフォルトの名無しさん
2010/01/18(月) 16:42:091 ひとりプロジェクトならスマートポインタは必要ない。
2 協調作業の場合、自作スマートポインタの仕様を説明するのが面倒だからよそのライブラリを使ったほうが説明しやすい
ゆえに自作スマートポインタは必要ない
0518デフォルトの名無しさん
2010/01/18(月) 16:45:09> 1 ひとりプロジェクトならスマートポインタは必要ない。
いやいやいや。
0519デフォルトの名無しさん
2010/01/18(月) 16:55:000521デフォルトの名無しさん
2010/01/18(月) 20:14:11それはどこのshared_ptrですか?
boostのshared_ptrはカウンタクラスにvtableとuse_countとweak_countしかないよ。
アトミック命令でインクリメントするからミューテックスは必要ないし。
0522デフォルトの名無しさん
2010/01/18(月) 20:23:32アトミックも何も使えない環境だと本当に肥大化するよ。
1.35のsp_counted_base_pt.hppを見てみ。
0523デフォルトの名無しさん
2010/01/18(月) 21:02:05#define BOOST_SP_DISABLE_THREADS
という手もある
0524デフォルトの名無しさん
2010/01/18(月) 21:10:38そんなん初めて知ったわ
0525デフォルトの名無しさん
2010/01/19(火) 00:05:31環境や使用できるライブラリが他人に決められてしまう場合とか。
せめてshared_ptrだけの導入なら説得できるんじゃないかとか思ったことがあるw
>>481
find_if()とかでこんなの考えたけど意味が違うか
find_if( v.begin(), v.end(), bind( &tuple<string, int, int>::get<0>, _1 ) == str );
binary_search()は思いつかないなあ
0526デフォルトの名無しさん
2010/01/19(火) 01:03:05失敗時に下手すりゃ関連ライブラリにも飛び火するし。
0527progress_display
2010/01/20(水) 13:10:130528デフォルトの名無しさん
2010/01/20(水) 15:01:57貴方はお引き取りくださいw
0529デフォルトの名無しさん
2010/01/20(水) 16:37:42ああこれは他のプロセスから進捗状況を取得できるAPIも用意されてるんだな。
そうにちがいない。
まさか表示するだけなんてことはあるまい。
0531デフォルトの名無しさん
2010/01/21(木) 11:44:450532compressed_pai
2010/01/22(金) 20:58:000533デフォルトの名無しさん
2010/01/23(土) 00:59:470535デフォルトの名無しさん
2010/01/23(土) 08:35:210536デフォルトの名無しさん
2010/01/24(日) 12:58:040537デフォルトの名無しさん
2010/01/24(日) 19:10:440538デフォルトの名無しさん
2010/01/24(日) 19:27:420539デフォルトの名無しさん
2010/01/24(日) 19:28:170540デフォルトの名無しさん
2010/01/24(日) 19:34:26ttp://pc12.2ch.net/test/read.cgi/tech/1248060999/
無限精度実数ライブラリなんだとさ。
これさえあればpiも無限精度でいけるぜ。
・・・いつ使うのかはしらんが、画期的なにおいがある。
0541デフォルトの名無しさん
2010/01/24(日) 21:18:09ICUをstaticでビルドしてるからRegexもlink=staticでビルドしたい
0542デフォルトの名無しさん
2010/01/24(日) 21:42:200543デフォルトの名無しさん
2010/01/24(日) 22:08:45Bjamのソースか関連ファイルを改造しないと無理と思われます。
0544デフォルトの名無しさん
2010/01/24(日) 22:24:32ttp://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
0545デフォルトの名無しさん
2010/01/25(月) 01:36:59boost::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");
と同じ事をしてくれるような機能はないのでしょうか
0546デフォルトの名無しさん
2010/01/25(月) 14:53:210547デフォルトの名無しさん
2010/01/25(月) 14:57:15socket& operator<<(socket&, const std::string& request);
って関数用意するくらいしか思いつかないな
iostreams とか使ってもできそうな気がするけど
0549デフォルトの名無しさん
2010/01/25(月) 22:13:040550デフォルトの名無しさん
2010/01/25(月) 22:41:490551デフォルトの名無しさん
2010/01/29(金) 12:06:430552デフォルトの名無しさん
2010/01/29(金) 22:13:17OSの制限まで使えると思う。Asio自体には特に制限はないのでは?
0553デフォルトの名無しさん
2010/01/29(金) 23:22:170554デフォルトの名無しさん
2010/01/30(土) 00:28:44じゃWinの場合は1スレッド32個までなのかな。
0555デフォルトの名無しさん
2010/01/30(土) 03:11:51WaitForMultipleObjectsの制限で64個のほかに何かあるの?
0556デフォルトの名無しさん
2010/02/03(水) 20:34:310557デフォルトの名無しさん
2010/02/06(土) 23:11:24祝age
0558デフォルトの名無しさん
2010/02/06(土) 23:38:54昨日1.41.0入れたばかりなのに
ちなみにその前日まで1.38使ってました
0559デフォルトの名無しさん
2010/02/07(日) 00:34:45C言語の 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 が無いらしい(´・ω・`)
0560デフォルトの名無しさん
2010/02/07(日) 15:55:400561デフォルトの名無しさん
2010/02/07(日) 22:17:07とりあえず使える状態だった1.41.0で
implicit_valueを試してみたけどダメみたいだね。
次のargvを引数にするみたい(´・ω・`)
0562デフォルトの名無しさん
2010/02/07(日) 22:20:18unicode対応の意味を分かってないクソ設計だった。
正直、progress_displayと同レベル。
0563デフォルトの名無しさん
2010/02/07(日) 22:35:40定番用途なのにもったいない。
progress_displayは別にいいや。
0564デフォルトの名無しさん
2010/02/07(日) 22:51:05Boost.Spiritはv2になってコンパイル速度が遅く
なったのが痛いな。
とはいえCPUがこれから先 さらに進歩すれば十分使えるようになるだろう。
・・・たぶん。
program_optionsはそもそも事前にビルドしておかないといけないってのが
難点というか、俺はそれで使ったことない。
progress_displayは・・・まあ別にいいや。
rootでなくてどっかのディレクトリに入って欲しいなぁってくらい。
0565デフォルトの名無しさん
2010/02/07(日) 23:01:06ttp://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.
0566デフォルトの名無しさん
2010/02/07(日) 23:01:47Improve 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にアップデート致しました。
0567デフォルトの名無しさん
2010/02/07(日) 23:07:56boost/exception/all.hpp を使えだってさ
0568デフォルトの名無しさん
2010/02/08(月) 00:35:02さすがにこの変更はないわ
boost/exception.hppでall.hppをincludeしてくれたらよかったのに
0569デフォルトの名無しさん
2010/02/08(月) 10:08:38海外製のライブラリはそんなのが多いような気がする。
VisualStudio限定の話になるけど、文字セットを「Unicode文字セットを使用する」に設定するとおかしくなる感じで。
0570デフォルトの名無しさん
2010/02/08(月) 10:22:46もっと練ってから入れて欲しかった
0571デフォルトの名無しさん
2010/02/08(月) 20:05:03spiritに続いてこの仕打ちは酷いよ。
0572564
2010/02/08(月) 21:31:20やっぱboostに入るぐらいだから便利なんだろうか。
紹介を見てもそんな例外をばりばりに使用しないしって思っちゃう。。。
0573デフォルトの名無しさん
2010/02/08(月) 22:52:170574デフォルトの名無しさん
2010/02/09(火) 05:19:46shared_ptr<string>がBoost.Serializationでシリアライズできない。
STATIC_ASSERTにひっかかる。
0575デフォルトの名無しさん
2010/02/09(火) 14:04:38結局、command_line_parserに渡す前に自前で処理しました。
GNU拡張とはいえgetoptにできることぐらいはできないと困るね(´・ω・`)
0576デフォルトの名無しさん
2010/02/09(火) 14:05:14何やってんだw
0577デフォルトの名無しさん
2010/02/09(火) 19:16:31どんなときに使うのでさ?
0578デフォルトの名無しさん
2010/02/09(火) 19:18:30progress_displayに情報を渡す。
0580デフォルトの名無しさん
2010/02/09(火) 20:29:12progress_displayすげー。
0581デフォルトの名無しさん
2010/02/10(水) 09:49:53処理状態をファイルか何かに保存したりしたい時
例えばゲームのセーブロードとか、CGIのセッション保存とか
0582デフォルトの名無しさん
2010/02/11(木) 06:09:02iniとか使う気になれんし
0584デフォルトの名無しさん
2010/02/11(木) 18:53:45でもさ,Boostに依存しまくったライブラリとかみんな使ってくれるかな・・・
0586デフォルトの名無しさん
2010/02/11(木) 19:26:29自力ビルドしたい人とかサポート外環境の人には諦めてboost入れてもらうことにしよう・・・
0587デフォルトの名無しさん
2010/02/11(木) 21:56:160588デフォルトの名無しさん
2010/02/11(木) 23:33:38Qtはおすすめ
0589デフォルトの名無しさん
2010/02/12(金) 00:19:46依存しまくったライブラリでも有用性があるならおkでしょう。
ただしそのライブラリが複数あるなら、依存しないでかけるライブラリは
その方が良いのかもしれんけど。
0590デフォルトの名無しさん
2010/02/12(金) 00:24:33> STLでさえ禁止のところあるからなぁ・・・
別にそんな会社は潰れちまえばいいだけだろ。
・・・え?ウチの会社・・・?
0591デフォルトの名無しさん
2010/02/12(金) 00:34:200592デフォルトの名無しさん
2010/02/12(金) 05:18:35↑STLが使えるだけマシだろ
↑テンプレート使えるだけマシだろ
0593デフォルトの名無しさん
2010/02/12(金) 06:18:03この板の「職場で使わせて貰えない」系の嘆きも、そういう順で変化してってるよね。
俺が最初にこの板来た頃はテンプレートで、次にSTLになって、今はBoost。
「C++0x使わせてもらえない」も来るかな。autoくらい使わせてくれよ的な。
0594デフォルトの名無しさん
2010/02/12(金) 08:30:16↑STLが使えるだけマシだろ
↑テンプレート使えるだけマシだろ
↑C++使えるだけマシだろ
↑C使えるだけマシだろ
↑アセンブラ使えるだけマシだろ
0595デフォルトの名無しさん
2010/02/12(金) 08:33:030596デフォルトの名無しさん
2010/02/12(金) 09:30:18ライセンスとかどうなんでしょう?
0597デフォルトの名無しさん
2010/02/12(金) 09:39:48ハアハア
0598デフォルトの名無しさん
2010/02/12(金) 10:20:21boostライセンスの条文のコピーとboost使ってますっていう記述を
readmeにでも書いてればおk
0599デフォルトの名無しさん
2010/02/12(金) 10:28:39boostのライセンスのせときゃいいよ
0600デフォルトの名無しさん
2010/02/12(金) 11:15:050601デフォルトの名無しさん
2010/02/12(金) 11:16:120602デフォルトの名無しさん
2010/02/12(金) 11:31:30それは問題にならない。
LGPLはオブジェクトコードがどういうものかというのを定めてはいない。
動的リンクだろうと静的リンクだろうと、それはLGPLの定義の範囲外にある。
LGPLでは、ソースコードとして、どのように使っているかが問題になる。
0603デフォルトの名無しさん
2010/02/12(金) 11:56:02という話が出ないのはなんでだ?
0604デフォルトの名無しさん
2010/02/12(金) 12:09:000605regex
2010/02/12(金) 12:20:58どこの馬の骨とも知らねぇライブラリと一緒にしてくれるな。
そうそう、progress_display君が、今度お前と一緒に飲みに行きたいらしいぜ。
せいぜい付き合ってやれよw
0606デフォルトの名無しさん
2010/02/12(金) 12:37:47「オブジェクトコード」という言葉は定義しなければならない性質のものなのだろうか。
それに「リンク」という言葉はオブジェクトコードという言葉に対しては使われていない。
0607デフォルトの名無しさん
2010/02/12(金) 16:50:36いや、boostの正規表現はライブラリをリンクしなければいけない
と >>596 が思い込んでる気がしてな。
xpressive 使えばそもそもリンクなんか必要ないだろうと。
>>605
コンパイル時間の増加以外に具体的にまずいところがあるなら教えてくれ。
0608デフォルトの名無しさん
2010/02/12(金) 17:29:400609デフォルトの名無しさん
2010/02/12(金) 19:39:49大丈夫そうですね
http://d.hatena.ne.jp/yamadila/20080825/1219595555
0610デフォルトの名無しさん
2010/02/13(土) 01:40:16> boostの正規表現機能を使いたいのですが
> あれって性的リンクだそうですが
> ライセンスとかどうなんでしょう?
読んでみ?
参考日本語訳はttp://hamigaki.sourceforge.jp/doc/html/license.html
要するに、
1.ソースコードの形で流用するなら
ライセンス文全部と著作権表示をすれば流用OK。
2.コンパイルしちゃってバイナリの形で利用・再配布等するなら
全くライセンス文や著作権表示すら不要。
0611デフォルトの名無しさん
2010/02/13(土) 02:09:480612デフォルトの名無しさん
2010/02/13(土) 02:22:22式に組み込みたいのですが、どうすればいいでしょうか?
// 例えばvector2をmatrix2x1のように扱う。
ublas::vector< double > v( 2 ); // vector2
ublas::matrix< double > m( 2, 1 ); // matrix2x1
m.assign( v ); // <-これが通るようにしたい。
0613612
2010/02/13(土) 02:37:45vectorからmatrixへ変換出来ることはわかりました。
他にもっと良い方法があれば教えてください。
0614デフォルトの名無しさん
2010/02/13(土) 03:09:08>式に組み込みたいのですが
漏れの読解力じゃここが分からんのだが、結局何がしたいのか??
0615デフォルトの名無しさん
2010/02/13(土) 03:11:380617デフォルトの名無しさん
2010/02/13(土) 03:31:04ublas::column(m, 0).assign(v) // m の第0列に v を代入
でいける
同じように ublas::row(m, i) で m の第i行が取得できる
他には ublas::slice とか ublas::project とかで部分ベクトルと部分行列も取れるよ
0618デフォルトの名無しさん
2010/02/13(土) 04:39:35開発環境:vc++ 2008 Express Edtion
boostのshared_ptrを使いメモリ管理を楽にしようかと思っているのですが、
shared_ptrによって隠蔽されたポインタはインテリセンス(コード保管)によってpublicな変数や関数を参照できないことに気づきました。
たとえば
class Test {
public: int a;
Test() {
a = 100;
}
~Test() {
}
};
というクラスがあり。
コードの一部に以下のようなコードを仕込み試したところ。
shared_ptr<Test> p(new Test());
printf("%d\n", p->a);//インテリセンス無効
Test *p2 = new Test();
printf("%d\n", p2->a);//インテリセンス有効
スマートポインタを介したpはインテリセンスできず、直接のポインタであるp2はインテリセンスでaを参照できました。
僕は隠蔽されているのでインテリセンスができないのは当たり前のことのように感じたのですが、
そのスレではスマートポインタもインテリセンスできるはずと言われました。
なんらかの設定、もしくはアドインのようなものを入れればスマートポインタはインテリセンスできるのでしょうか
0619デフォルトの名無しさん
2010/02/13(土) 05:23:20補完がきかないのはshared_ptr<T>の解析が済んでいないか、
もしくはどこかで解析に失敗してDatabaseが壊れてる。
IDEを開き直すか、あるいはソリューションフォルダ内の.ncbファイルを削除して
しばらく待ってればそのうち補完がきくようになる。
再現性100%でIntellisence壊れるようなヘッダを別のところでincludeしていた場合、
(boost::shared_ptrとは関係なく)いつまでも解析が終わらないことがあるが、
その場合はそれがIntellisenceの限界。諦めろ。
0620デフォルトの名無しさん
2010/02/13(土) 05:34:37何れにせよ過度な期待はしない方がいいな
動けばラッキーくらい。最初から諦めてれば何とも思わなくなる
0621618
2010/02/13(土) 05:55:44クラッシュもしくは解析に時間がかかっていると考えます。
tr1ありがとうございます。検討します。
620さんのいうとおり基本的には動かないものと考え、動いたときに「おっ」って言おうと思います。
0622618
2010/02/13(土) 06:02:210624612
2010/02/13(土) 11:06:00vectorをmatrixに、ではなくて
matrixから部分vectorを得て、という考え方に変えるんですね。
とてもよくわかりました。その方向で修正します。
ありがとうございました。
0625デフォルトの名無しさん
2010/02/13(土) 13:26:01> GoogleIMEはやたらと性的を勧めてくるから困る
なるほど。性的と静的を比較して、どっちが多く検索されている
かといえば無論・・・。。。ってことか。
0626デフォルトの名無しさん
2010/02/14(日) 14:50:34このスレのアイドル progress_display への侮辱はゆるさないよ?
0627デフォルトの名無しさん
2010/02/18(木) 15:23:340628デフォルトの名無しさん
2010/02/18(木) 23:39:24これって1.41以前のspiritと動作変わってたりする?
0629デフォルトの名無しさん
2010/02/19(金) 20:04:25ttp://booster.x0.to/
以下更新内容の一部
[Fusion]
adapt plain old array types (1)
[Typeof]
Apply variadic functions patch from Sergey Zubkovsky.
[Spirit]
Spirit: raw[] and lexeme.hpp[] do not pre-skip anymore
Spirit: adding no_skip[] directive, docs, tests, etc.
added code for pre-skipping "implicit lexeme" rules
[Lexical_cast]
Use BOOST_LCAST_THROW_BAD_CAST consistently.
[Functional]
Stop using the deprecated BOOST_HAS_ macros in unordered and hash.
[Unordered]
Stop using the deprecated BOOST_HAS_ macros in unordered and hash.
[Thread]
Changed boost.thread to use BOOST_NO_RVALUE_REFERENCES rather than BOOST_HAS_RVALUE_REFS
Overload boost::move for thread& and thread&&
[Static_assert]
Use BOOST_NO_STATIC_ASSERT
[Archive]
change to avoid ">>" syntax error when passed a template instance
[Property_tree]
Make BOOST_PROPERTY_TREE_THROW an alias for BOOST_THROW_EXCEPTION.
[Program_options]
Robustify disambiguation of full/approximate matches.
Fixes #3942.
0630デフォルトの名無しさん
2010/02/20(土) 12:44:28名前空間移動した以外の変更はせずに使ってるけど。
名前空間の移動はコードや動作は変えないって意思表示だと思ってる。
0631デフォルトの名無しさん
2010/02/28(日) 01:09:470632デフォルトの名無しさん
2010/02/28(日) 01:14:440633デフォルトの名無しさん
2010/02/28(日) 01:17:31λ式で脳みそ犯されろ。
0634デフォルトの名無しさん
2010/02/28(日) 12:43:22boostネタを回答するときは、ここのURLも張ろうぜ
0635デフォルトの名無しさん
2010/02/28(日) 12:47:250636デフォルトの名無しさん
2010/02/28(日) 12:50:56vaultのお勧めは何?俺はrangeExに注目している。といいつつoven使ってるが。
0637デフォルトの名無しさん
2010/02/28(日) 14:15:12「現行C++においてboostは標準のライブラリではないから処理系依存スレかboostスレへどうぞ」
0638デフォルトの名無しさん
2010/02/28(日) 14:45:35ってのがたまにある
0639デフォルトの名無しさん
2010/02/28(日) 14:46:30vaultとかsandboxとか、そこまで手を広げるのか。
0640デフォルトの名無しさん
2010/02/28(日) 15:16:27ところでどっちを使えばいいんだ?
0641デフォルトの名無しさん
2010/02/28(日) 15:17:060642デフォルトの名無しさん
2010/02/28(日) 15:19:07許可されている方。
もうちょっとしたらstdを使えばいいんでね?
0643デフォルトの名無しさん
2010/02/28(日) 15:38:39といってもMSVCとGCCしか使ってないけど。
0644デフォルトの名無しさん
2010/02/28(日) 18:41:36Boost C++ Libraries Sandbox
http://pc12.2ch.net/test/read.cgi/tech/1250396380/
0645デフォルトの名無しさん
2010/02/28(日) 20:02:13ウチより閑散としとるw
0646デフォルトの名無しさん
2010/02/28(日) 20:51:02http://pc12.2ch.net/test/read.cgi/tech/1231080841/
part1 がむなしい。
STL スレも含めて template 統合で良かったような気がするんだけどね。
0647デフォルトの名無しさん
2010/02/28(日) 21:01:080648デフォルトの名無しさん
2010/02/28(日) 22:01:20のmatrixへ、C配列からブロックごとコピーする方法ってありますか?
・matrixの使っているメモリが連続しているのか
・sliceか何かでブロックのアドレスを外から代入することができるか
の二点が問題になりそうですが。
0649デフォルトの名無しさん
2010/03/01(月) 02:03:59普通にあるから論外
0650デフォルトの名無しさん
2010/03/04(木) 18:55:09matrix<T, row_major> mはCの2次元配列とメモリ配置が一致してる
初期化なりresizeなりであらかじめメモリを確保しておけば、
&(m(0, 0))で先頭アドレス取り出せるからメモリ配置考えてコピー可
0651デフォルトの名無しさん
2010/03/05(金) 16:27:23ありがとうございます。
あと
&(m.data()[0])
とかも使えそうですね。
0652デフォルトの名無しさん
2010/03/06(土) 01:12:350653デフォルトの名無しさん
2010/03/06(土) 01:41:16お前みたいな奴が仕事増やしてるんだよ死ねよクズが
0654デフォルトの名無しさん
2010/03/07(日) 17:27:21// コード
typedef void (alloc_func)( );
#include <boost/property_tree/detail/rapidxml.hpp>
// エラー
error C2226: 構文エラー : 'alloc_func' 型指定子の前あるいは内部で構文エラーが発生しました。
boost::property_tree::detail::memory_pool内での
> typedef void *(alloc_func)(std::size_t);
という宣言で引っかかっている。
グローバルのalloc_funcの宣言を、インクルード後に書いたらエラーにならなかった。
VC9のバグだろうか?
0655デフォルトの名無しさん
2010/03/07(日) 17:44:53エラーになるところを中心に切り出していけば、もっと条件絞れるんじゃないの?
0656654
2010/03/07(日) 17:54:26typedef void (func)( );
namespace foo {
typedef void* (func)( );
}
// これならおk
typedef void (func)( );
namespace foo {
typedef void* pvoid;
typedef pvoid (func)( );
}
0657654
2010/03/07(日) 17:58:52typedef void *(alloc_func)(std::size_t); // Type of user-defined function used to allocate memory
の行を
typedef void *alloc_func_result_type;
typedef alloc_func_result_type (alloc_func)(std::size_t); // Type of user-defined function used to allocate memory
に書き換えてやれば解決するはず。
0658デフォルトの名無しさん
2010/03/07(日) 18:15:180659デフォルトの名無しさん
2010/03/07(日) 18:18:27そんなのが通らないならコンパイラのバグだろさすがに。
0660デフォルトの名無しさん
2010/03/07(日) 20:34:450661デフォルトの名無しさん
2010/03/07(日) 20:37:42じゃなかったっけ?
typedef void (func)( );
こう買いてもおkなんだっけ
0662デフォルトの名無しさん
2010/03/07(日) 20:40:50void*を返す関数
typedef void (*func)( );
戻り値なしの関数へのポインタ
typedef void (func)( );
戻り値なしの関数
合ってる?
0663デフォルトの名無しさん
2010/03/07(日) 20:41:17上は関数ポインタの型 void(*)(void)
下は関数の型 void (void)
0664デフォルトの名無しさん
2010/03/07(日) 20:45:20typedefなしで書かれてて泣いた
0665デフォルトの名無しさん
2010/03/07(日) 21:08:290666デフォルトの名無しさん
2010/03/07(日) 21:12:49haskell記法で書けばこうか
func :: ((a -> b) -> (c -> d)) -> e
0667デフォルトの名無しさん
2010/03/07(日) 21:55:31auto func(auto (*)( auto (*)() -> void ) -> auto (*)() -> void ) -> void ;
新しい関数宣言の文法で書いたら、VC10はクラッシュ。gcc 4.5はコンパイルエラー。
どちらも、一応は実装しているんだが。
まだまだC++0xには程遠いな。
0668デフォルトの名無しさん
2010/03/07(日) 22:04:25signal関数か
0669デフォルトの名無しさん
2010/03/07(日) 22:34:310670デフォルトの名無しさん
2010/03/07(日) 22:35:340671デフォルトの名無しさん
2010/03/07(日) 22:46:26どこへ向かうのですか!?
と禿を問い詰めたい。
0672デフォルトの名無しさん
2010/03/07(日) 22:55:43exportだって1人くらいは実装したやついたし。
0673デフォルトの名無しさん
2010/03/07(日) 22:58:44「関数ポインタを引数に取って関数ポインタを返す関数ポインタを引数に取る関数」の例。
ただ、上はちょっとtypoした。lが混じってる。
×void func(void (*(l*)(void (*)(void)))(void)) ;
○void func(void (*(*)(void (*)(void)))(void)) ;
0674デフォルトの名無しさん
2010/03/08(月) 03:13:190675デフォルトの名無しさん
2010/03/08(月) 19:47:010676デフォルトの名無しさん
2010/03/10(水) 18:49:13報告しようとしたら、修正コードもアップされてた。
ただ、乱数ベースが一番ユニークなID生成方法なライブラリというのは使い道あるのか?
0677デフォルトの名無しさん
2010/03/10(水) 19:22:19guidだったかもしれんが
0678デフォルトの名無しさん
2010/03/10(水) 19:33:43ふつう使うのはその生成方法だとは思う。
RFCではそのほかに乱数ベース、ネームスペース付の文字列から生成するなどいくつかバージョンがある。
OSの関数を呼び出す処理がコメントでTODOとして書いてあったが、LinuxのuuidパッケージはGPLだった気がする。
ライセンス的に微妙なのかもしれない。
0679デフォルトの名無しさん
2010/03/10(水) 21:49:57オープンソースなスタティックライブラリ内でGPLパッケージをリンクすると
前者もGPLになってしまうのか
それともライブラリをリンクした人が考える問題なわけだけど
ユーザに丸投げするとboost使うひとがメンドくさすぎるから
できるだけ外してるんだろうか.よくわからんな
0680デフォルトの名無しさん
2010/03/11(木) 00:00:33e2fsprogsパッケージはGPLだけど、libuuidは修正BSD
WindowsのUuidCreate呼ぶ奴もないし、まだ方針が定まってないだけじゃないの。
0681デフォルトの名無しさん
2010/03/11(木) 20:29:18desc.add_options()
("hoge", boost::program_options::value<double>(), "")
("hoge_foo", boost::program_options::value<double>(), "");
みたいに他方のオプションが一方のオプション文字列から始まるとコマンドを認識できないんだな
(--hoge_foo をオプションで渡しても --hoge と認識される)
細かいオプションも扱えないしマジでゴミだなこれ
0682デフォルトの名無しさん
2010/03/11(木) 22:37:18オプション名の長いほうから追加したらどうなるん?
0683デフォルトの名無しさん
2010/03/13(土) 03:47:590684デフォルトの名無しさん
2010/03/14(日) 02:46:180685デフォルトの名無しさん
2010/03/14(日) 02:47:130686デフォルトの名無しさん
2010/03/14(日) 05:31:07すみません,このコードでth3,th4が実行されないのはc++の仕様でしょうか
0687デフォルトの名無しさん
2010/03/14(日) 05:38:420688デフォルトの名無しさん
2010/03/14(日) 05:42:10すみません,全部joinする感じでお願いします
0689デフォルトの名無しさん
2010/03/14(日) 07:38:490690デフォルトの名無しさん
2010/03/14(日) 08:19:01あと今回問題のth3,th4が原因で
th3.join()とth4.join()でエラーになります
それを除けば大丈夫だとおもいます.
0691デフォルトの名無しさん
2010/03/14(日) 14:24:00th3とth4の宣言はそれぞれtest0()、ret_test0()という「関数」を引数にとる「関数のプロトタイプ」と認識する
th3とth4のjoin()でコンパイルエラーになるのはオブジェクトが生成されていないから
多分テンプレートコンストラクタ特有の現象
↓で再現するんじゃないかな?
struct CTest
{
template<typename F>CTest(F f){}
void join(){}
};
CTest tst( test0() ); // プロトタイプ宣言になってしまう
tst.join() // コンパイルエラー(これを外せば一応コンパイルは通る)
0692デフォルトの名無しさん
2010/03/14(日) 14:43:27なるほど!
boost::thread th3(test0());は
関数型のtest0 noname(void)を受け取って
boost::threadを返す
th3という名前の関数のプロトタイプになってしまうんですね.
boostというよりc++の問題だったみたいで申し訳ないですが
ありがとうございました.
0693デフォルトの名無しさん
2010/03/19(金) 16:01:47http://www.boost.org/doc/libs/1_42_0/doc/html/boost/program_options/command_line_style/style_t.html
http://ideone.com/yemWObm2
0694デフォルトの名無しさん
2010/03/19(金) 20:45:04ttp://booster.x0.to/
以下更新内容の一部
[Fusion]
adapt template classes/structs
[Math]
Use the official boost.math check for long double
[Spirit]
Spirit: fixed #3806 (spirit/home/support/multi_pass.hpp missing functor_input #include)
Added buffering_input_iterator to multi_pass suite
adding default_wide char_encoding
[Graph]
Changed to allow characters that are not 8-bit; added one-bit-per-color color map
[Random]
Rearrange the componenents in libs/random and create a library for random_device. Fixes #3672
[Asio]
Reworked implementation.
Fix bug where 0-byte reads were incorrectly passing an eof error_code to the handler. Refs #4023.
[Proto]
fix error in invocation of callable monomorphic function objects, expression self-assignment creates an assign node
[Uuid]
Fixed bug in basic_random_generator. It wasn't producing random uuids correctly.
亦、libs_for_build_boost.rarも、bjam.exeをrev.60157に、
ICUを4.4に、zlibを1.2.4にそれぞれアップデート致しました。
0695デフォルトの名無しさん
2010/03/20(土) 22:30:150696デフォルトの名無しさん
2010/03/22(月) 22:15:54ttp://www.kmonos.net/alang/boost/
おお久々の更新だ。
◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14)
新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器)
0697デフォルトの名無しさん
2010/03/22(月) 22:22:14ありがたや
0698デフォルトの名無しさん
2010/03/22(月) 22:27:37なんか便利そうだな。property_treeかうーん。
0699デフォルトの名無しさん
2010/03/22(月) 22:30:260700デフォルトの名無しさん
2010/03/22(月) 22:34:05VSに付いてる奴で済んじゃってるな
0701デフォルトの名無しさん
2010/03/22(月) 23:46:01ちょっと衝突が心配。
"ハードウェアやミドルウェアの提供する機能を使った UUID 生成機能は将来的に実装予定" らしいが…。
0702デフォルトの名無しさん
2010/03/22(月) 23:50:03unilinuでも使える共通インターフェースが必要なんだよ
0703デフォルトの名無しさん
2010/03/23(火) 12:39:580704デフォルトの名無しさん
2010/03/23(火) 12:58:200705デフォルトの名無しさん
2010/03/23(火) 14:22:22sha1の衝突を心配してたらSSLも使えないだろう
0706デフォルトの名無しさん
2010/03/23(火) 15:28:29まあ暗号じゃないけどさ
0707デフォルトの名無しさん
2010/03/23(火) 18:23:47少なくとも俺らが定年するまでには起こらない。
0708デフォルトの名無しさん
2010/03/23(火) 18:38:35同時に満たしているかを調べる感じで・・・
0709デフォルトの名無しさん
2010/03/23(火) 18:50:010710デフォルトの名無しさん
2010/03/23(火) 19:01:180711デフォルトの名無しさん
2010/03/23(火) 19:54:390712デフォルトの名無しさん
2010/03/23(火) 20:14:120713デフォルトの名無しさん
2010/03/23(火) 20:17:570714デフォルトの名無しさん
2010/03/23(火) 20:59:15ランダムだけかと思った。
0715デフォルトの名無しさん
2010/03/25(木) 16:23:56データを復元する際 boost::archive::binary_iarchiveから>>を使って読み込む際に
std::length_errorが返ってきてしまいます。
これは仕様なのでしょうか?
0716デフォルトの名無しさん
2010/03/25(木) 23:50:490717デフォルトの名無しさん
2010/03/27(土) 21:41:16ttp://booster.x0.to
以下更新内容の一部
[Asio]
Fix epoll_reactor bug where cancelled operations would complete with a "success" error_code.
Use cancel() to avoid Windows behaviour where a connection is reset if the
socket is closed while there is a pending read operation.
[Proto]
try again to get proto assignment overloads right
add an appendix for release notes
[Wave]
Wave: added new preprocessing hook: emit_line_directive, added corresponding functionality to wave driver
Wave: Fixed the wave driver application to strip leading and trailing whitespace from macro names specified on the command line using -U.
[Spirit]
Spirit: Fixing bug in display_attribute_of_parser utility.
Straight UTF-8 implementation
Spirit: Added missing namespace qualification
When supplying 3 arguments for the adder, require the third (val) argument. Otherwise, it will be ambiguous with the 2-param version.
Spirit: renaming directory
[Unordered]
Add quick_erase to the unordered containers. Refs #3966.
[Graph]
Fixed warning (and probable bug) in test case
Re-enabled Spirit-based parser (but not by default) and cleaned up Graphviz reader implementation
[Numeric]
storage.hpp: see #3968, applied patch to use references instead of copies in swap implementations
[Functional]
Remove optimization which causes 0.5 to hash to 0. Refs #4038.
[Python]
Handle the destructor call in a way that keeps msvc happy. Fixes #4003
亦、libs_for_build_boost.rarも、bjam.exeをrev.60778にアップデート致しました。
0718デフォルトの名無しさん
2010/03/30(火) 22:49:25boost.progres_timer
で
catch (...) {} // eat any exceptions
ってコードがあるんだがwww
すごい潔すぎる
0719デフォルトの名無しさん
2010/03/31(水) 00:53:310720デフォルトの名無しさん
2010/03/31(水) 09:18:000721デフォルトの名無しさん
2010/03/31(水) 11:18:000722デフォルトの名無しさん
2010/03/31(水) 11:20:12納期寸前によくやる方法ジャマイカ
0723デフォルトの名無しさん
2010/03/31(水) 11:21:04ttp://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%BC%E5%BF%98%E5%8D%B4%E5%9E%8B%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
0724デフォルトの名無しさん
2010/03/31(水) 13:03:510725デフォルトの名無しさん
2010/03/31(水) 13:54:11> データの不整合が発見されても不整合が発見されたというログだけを残し、
> 処理を継続させるのが特徴。
ということで、
catch (std::cerr << "error!" << std::endl;) {} // eat any exceptions
で解決!
0726デフォルトの名無しさん
2010/03/31(水) 13:56:050728デフォルトの名無しさん
2010/03/31(水) 14:17:180729725
2010/03/31(水) 14:22:19ちょーはずかすい
catch (...) {std::cerr << "error!" << std::endl;} // eat any exceptions
0730デフォルトの名無しさん
2010/04/02(金) 23:49:31ttp://booster.x0.to
以下更新内容の一部
[Spirit]
Spirit: added Karma generator for outputting arbitrary sexpr
Spirit: improving customization points for karma alternatives
[Asio]
Change the resolver implementation to no longer require the typedefs
Don't allow speculative reads when message_out_of_band is specified.
Don't perform a speculative read when an out-of-band read is pending.
New kqueue reactor implementation using one-shot event registration.
Fix so that lock is not held while reactor is running.
[Mpl]
Fix for #1992
[Range]
Boost.RangeEx merged into Boost.Range
[Graph]
Added missing include
[Property_map]
Converted dynamic_properties to use boost::shared_ptr instead of std::auto_ptr
Added vertex_bundle and edge_bundle property maps, plus fixed some property map allocation bugs
[Detail]
Uncomment ifdef test that was accidentally left commented.
[Unordered]
Use boost::throw_exception in unordered.
[Iostreams]
Explicitly qualify call to equal for compilers which find it ambiguous.
[Thread]
Fix use of rvalue ref in futures
0731デフォルトの名無しさん
2010/04/03(土) 19:17:43tempはテンプレート型で、x、yをメンバに持つ構造体が今入っている。
const static char *SPEACE = {"^"};
char line[256];
std::list<std::string> str;
while( !ifs.eof() ){
ifs.getline(line, sizeof(line));
boost::algorithm::split( str , line, boost::is_any_of( SPEACE ) );
temp.pos.x = boost::lexical_cast<float>( str[0] );
temp.vec.y = boost::lexical_cast<float>( str[1] );
}
とするとエラーが出る…。
vectorにすると通るんだけど、この後のremove_ifの問題でlistでやりたい。
どうにかする方法を教えて欲しい。
0732デフォルトの名無しさん
2010/04/03(土) 19:30:120733デフォルトの名無しさん
2010/04/03(土) 19:54:240734デフォルトの名無しさん
2010/04/03(土) 20:14:25あ、簡単に解決したw
一瞬作り直しかと思ってヒヤっとした、騒がしてすまん
0735デフォルトの名無しさん
2010/04/03(土) 20:38:250736デフォルトの名無しさん
2010/04/09(金) 05:40:43説明を読むと「簡単だが少し遅い。テンプレートで高速に書き直す必要が
ある」とか書いてあるんですけど、タイムスタンプが既に3年前で放置されています
0737デフォルトの名無しさん
2010/04/09(金) 06:02:06仕様が不明確だったりバグ持ちだったり将来のバージョンで同じように使えなくなっても
文句は言えないけど、それを承知で使うんならかまわないでしょう。
0738デフォルトの名無しさん
2010/04/09(金) 11:04:35レスありがとう
実はboost::stringtokなんですよ
strtok()は便利だけどこのstd::string版がpendingフォルダに
入っているので不安になったのです
0739デフォルトの名無しさん
2010/04/09(金) 20:52:59boost::tokenizerって知ってるか?
0740デフォルトの名無しさん
2010/04/10(土) 00:00:51boost::tokenizer
ttp://homepage2.nifty.com/c-labo/boost_tokenizer.html
この解説を読んでこっちを使うべし!
0741デフォルトの名無しさん
2010/04/10(土) 14:40:24http://old.nabble.com/GSOC-BigInt-Licensing-Issues-td28070540.html
このやりとりって結局どういう事になっているのでしょうか?
質問者swagat konchada :: Boost.BigIntはGMPを使っているからLGPLじゃないのですか?
解答者Rob Stewart :: ???
解答者Felipe Tanus-2 :: ???
後2つが分かりませんでした。
どなたか教えていただけますでしょうか。
0742デフォルトの名無しさん
2010/04/10(土) 20:52:27どうすべ。当面の間GMP周りのラッピングを進めるか、それともBigIntのboost版を始めるかい。
rob: GMPとかその類が提供しているものを再実装しないで GMPはBigIntがサポートする
バックエンドの一つにすべき。うんぬん。
felipe: スクラッチから作るなんてバカでかいことをする時間はたぶんない。現実的になろうぜ。
※当方は英検3級の語学力しかないので上記の内容は全く保証できない
0743デフォルトの名無しさん
2010/04/10(土) 22:57:02Boost.BigInt はまさか Boost Software License でリリースできないわけですか?
しかもbigintディレクトリを見てみると全てのファイルの最終更新日が
2009年8月21日になっていて、全然更新しようという気が見られないですよね。
・・・バグならともかくライセンスが死んでいるとなると
かなり致命的でBoost.BigIntは来ないんでしょうか。
泣きたくなりました
0744デフォルトの名無しさん
2010/04/10(土) 23:03:230745デフォルトの名無しさん
2010/04/10(土) 23:07:45ライブラリって他にあるのかねぇ?
割と簡単に作れそうだが。
・・・いや俺には無理だがな!
0746デフォルトの名無しさん
2010/04/10(土) 23:10:18実数だけど
無限精度実数ライブラリRealLib
ttp://pc12.2ch.net/test/read.cgi/tech/1248060999/
というスレを立てた俺が来ましたよ。
あのライブラリは上方向にも下方向にも実は限界がある。
下方向(絶対値が小さい方;0に近い方)は実質的に問題にならないほどの精度があるが、
上方向(絶対値がでかい方;±∞の方)は結構すぐオーバーフローする。
あとそもそもRealLibのライセンスってGPLとかだった気がする
よーしらんが。
0748デフォルトの名無しさん
2010/04/10(土) 23:15:060749デフォルトの名無しさん
2010/04/10(土) 23:23:16だから>>747なんだってば。
無理っす!
0750デフォルトの名無しさん
2010/04/10(土) 23:28:27平方とkaratsuba法で乗算の折り合い付けるのめんどかった
0751デフォルトの名無しさん
2010/04/10(土) 23:35:50Boost C++ Libraries Sandbox
http://pc12.2ch.net/test/read.cgi/tech/1250396380/
0752デフォルトの名無しさん
2010/04/10(土) 23:36:39下らない画像スレになってるぞ
0753デフォルトの名無しさん
2010/04/11(日) 00:00:28保守が半端ねぇw
荒らしすら来ないってよっぽどだな
0754741
2010/04/11(日) 00:24:24・・・デフォルトでGMP非依存になってますね。
#define BOOST_BIGINT_HAS_GMP_SUPPORT
を定義した上で
#include <boost/bigint/bigint.hpp>
とした場合に限り、GMPが使われるようです。
ということで、特に
Boost.BigInt を Boost Software License でリリースする事には
問題は無いようです。
0755741
2010/04/11(日) 00:26:31大文字小文字を区別せずgmpの文字を含む部分を全て削除した
bigintを使って見ましたが正常にどうさするようです。
・・・だと思うのですが、
私以上にBoostのソースコードを読む事に長けている方は
必ずやいらっしゃると思うので、
有識者の方、ご確認いただけますでしょうか。
0756デフォルトの名無しさん
2010/04/11(日) 01:39:470757デフォルトの名無しさん
2010/04/11(日) 07:17:110758デフォルトの名無しさん
2010/04/11(日) 13:22:48ドキュメントがないから?
もしかしてバグがある?
0759デフォルトの名無しさん
2010/04/11(日) 14:08:01互換保ちたいのにうっかりMSVC依存のコード書いてしまいそうで怖い。
0760デフォルトの名無しさん
2010/04/11(日) 15:00:03#includeする前後にpragma置けばいいだけだろ
0761デフォルトの名無しさん
2010/04/11(日) 15:27:560762デフォルトの名無しさん
2010/04/11(日) 18:14:12そんなのあるんだ。
gccでしか使わないからわからんや
0763デフォルトの名無しさん
2010/04/12(月) 11:12:06ただ警告レベルが4だと警告の嵐だった
0764デフォルトの名無しさん
2010/04/12(月) 15:18:330765デフォルトの名無しさん
2010/04/12(月) 20:17:13そばに従順な美少女中学生がいて各種プロセッサやデバイス代わりになってくれるなら
そっちのほうがいい。パソコンなんて間に合わせ。
0766デフォルトの名無しさん
2010/04/12(月) 20:19:50「コンピュータの操作なんて簡単で誰でも調べればできる」
「ビデオゲームの様な道楽に限りなく近い仕事をわざわざ私たちがやらせてやっている」
と意味不明な事を考えているから注意した方がいい。
0767デフォルトの名無しさん
2010/04/12(月) 21:06:510768デフォルトの名無しさん
2010/04/12(月) 21:14:240769デフォルトの名無しさん
2010/04/12(月) 22:22:29幸せだな趣味プログラマは、納期もないし。
0770デフォルトの名無しさん
2010/04/12(月) 23:16:16し
うっ
0771>>769
2010/04/13(火) 09:18:340772デフォルトの名無しさん
2010/04/13(火) 09:22:120773デフォルトの名無しさん
2010/04/16(金) 00:26:22約30000件で300ms程度もかかってしまいます。
C#だと100msもかからないです。
何か、こつがあるのでしょうか?
C++は速度で負けたら存在意義を失いそうです。
0774デフォルトの名無しさん
2010/04/16(金) 00:41:42コンパイラと最適化オプションと NDEBUG の定義を確認。
0775デフォルトの名無しさん
2010/04/16(金) 00:50:14VS2008 proでソリューション構成をReleaseでビルドします。
C#のRegex.Matchが恐ろしく速い・・・
インタプリタもどきに負けるのは、本当くやしいです。
0776デフォルトの名無しさん
2010/04/16(金) 01:19:10VC++ か。 _SECURE_SCL とか?
0777デフォルトの名無しさん
2010/04/16(金) 01:44:21レスサンクスです。
#define _SECURE_SCL 0
としてみましたが結果は同じでしたOrz
0778デフォルトの名無しさん
2010/04/16(金) 07:59:010779デフォルトの名無しさん
2010/04/16(金) 13:55:09同じ名前の別ライブラリとかじゃなくて
0780デフォルトの名無しさん
2010/04/16(金) 17:23:49確かに boost::regex は Perl より遅かった
0781デフォルトの名無しさん
2010/04/16(金) 22:19:01C++は使い道がないですね
0782デフォルトの名無しさん
2010/04/16(金) 22:46:52そうだね。早く気付いてよかったね。
君は消えて良いよ。
0783デフォルトの名無しさん
2010/04/17(土) 00:03:010784デフォルトの名無しさん
2010/04/17(土) 00:26:400785デフォルトの名無しさん
2010/04/17(土) 01:25:24確かにニーズは別で話にC#が出てくるのはおかしいがC#が絶滅危惧だと決め付けるのはもっと間違っている。
0786デフォルトの名無しさん
2010/04/17(土) 01:34:33どうとでも言えるってだけじゃないの?
0787デフォルトの名無しさん
2010/04/17(土) 01:44:570788デフォルトの名無しさん
2010/04/17(土) 02:35:260789デフォルトの名無しさん
2010/04/17(土) 11:46:32ttp://booster.x0.to
以下更新内容の一部
[Pending]
Applied another patch (unordered_equal_range_dispatch.2.patch) from #3972; fixes #3972
[Asio]
Add ifdef to allow asio's threading support to be independently disabled.
Try using asm-based fenced block for pathscale.
[Range]
Boost.Range algorithms are now in the boost::range namespace and brought into
boost by the appropriate using statement.
[Serialization]
Final changes for 1.43
[Statechart]
Fixes #3963. post_event() is now protected and forwards to post_event_impl()
[Spirit]
Spirit: fixing attribute transformation ambiguity
Spirit: generated lexer tables are not minimzed by default anymore
Spirit: added single character syntax for character ranges for Karma as well, added tests
[Signals2]
Fix for uncontrolled growth of slot list under certain patterns
of connection/disconnection without invocation. Refs #4089.
[Graph]
Added test case names to try to get better output on failures
[Config]
Added value-initialization tests for 2D and 3D arrays.
Replaced IS_VALUE_INITIALIZED by FAILED_TO_VALUE_INITIALIZE, to increase code readability.
Added value-initialization tests for POD structs that just have an int data member.
0790デフォルトの名無しさん
2010/04/17(土) 12:58:16boost::xpressiveならきっと早い。
0791デフォルトの名無しさん
2010/04/17(土) 15:30:000792デフォルトの名無しさん
2010/04/17(土) 16:41:11試してみた。処理は単純なgrepと同じ。
合計 15030行 445468bytes の41ファイルを処理した時間の比
516 : grep
1467: Boost regex
1471: Perl
Perlより遅いということはないと思う。同じくらいだけど
0793デフォルトの名無しさん
2010/04/17(土) 16:51:05Perlも正規表現コンパイルすると速くなったはずだけど、これはその結果?
よければコード晒して欲しい
0794デフォルトの名無しさん
2010/04/17(土) 16:59:06単純なものだとI/Oが占める時間がほとんどになるのだろうし
Perlのソースつっても、どうせ
perl -ne 'print if /foo/o' *.c
とかそんな感じだよね?
0795792
2010/04/17(土) 17:45:46http://codepad.org/uXTZ6hAx
c++コードの方は読み込みが律速しないよう fread である程度纏めて読んで
1行ずつ取り出して regex_search する感じで、全部合わせるとちょっと
大きいので御免。
0796デフォルトの名無しさん
2010/04/17(土) 17:54:09それで僅差なら、iostream + getline()なら余裕でC++が負けそうだね
0797デフォルトの名無しさん
2010/04/17(土) 19:14:480798デフォルトの名無しさん
2010/04/17(土) 21:35:55( ・ω・) �d�d
/ ~つと)
0799デフォルトの名無しさん
2010/04/18(日) 22:38:19ボトルネックになるって意味でおk?
0800デフォルトの名無しさん
2010/04/18(日) 22:43:290801デフォルトの名無しさん
2010/04/18(日) 22:50:11負けたにしても何が原因で負けたのか分からんし、
誰かボトルネックを調べないかな
0802デフォルトの名無しさん
2010/04/18(日) 23:00:12辞書ひけよ・・・と思ったら載ってなかった
驚愕だ
ボトルネックとほとんど意味一緒だけどね
0803デフォルトの名無しさん
2010/04/18(日) 23:02:510804デフォルトの名無しさん
2010/04/18(日) 23:53:340805デフォルトの名無しさん
2010/04/18(日) 23:55:360806デフォルトの名無しさん
2010/04/19(月) 00:03:240807デフォルトの名無しさん
2010/04/19(月) 00:04:15C#はスクリプト言語じゃないぞ
0808デフォルトの名無しさん
2010/04/19(月) 00:08:46俺も化学で「律速段階」と習ったこと覚えてるし
時々使いたくなるんだけど
糞IMEだと一発で変換できなくてむかつく。
0809デフォルトの名無しさん
2010/04/19(月) 00:58:140810デフォルトの名無しさん
2010/04/19(月) 01:41:57そんなあなたにGoogle日本語入力
0811デフォルトの名無しさん
2010/04/19(月) 07:26:02ttp://ja.wikipedia.org/wiki/%E4%BB%BB%E6%84%8F%E7%B2%BE%E5%BA%A6%E6%BC%94%E7%AE%97
ここに
> ライブラリ
> 任意精度演算は多くの場合、専用ライブラリを呼び出すことで実装されている。
> そのライブラリがデータ型を定義し、数値を指定した精度で格納したり、
> 計算を実行するサブルーチン群を提供している。
> ライブラリによって数値の内部表現は異なる。整数のみを扱うライブラリもあるし、
> 各種基数(十進、二進など)で浮動小数点数を格納するもある。
> 分数(有理数)形式で数を格納するものもあれば、実数を全て表現できるとするものもある。
ってあるとおり、改訂BSDライセンスとかでリリースされたライブラリもいっぱいあるから
別にBoost.Bigintにこだわる必要はなさそうだよ。
0812デフォルトの名無しさん
2010/04/19(月) 12:15:26つーか本気出すならexpressive使えよ
0813デフォルトの名無しさん
2010/04/19(月) 15:15:19計算量がボトルネックなら xpressive にしても期待する程の変化は
無いかも。
773 の状況が分からんからなんとも
0814デフォルトの名無しさん
2010/04/20(火) 23:48:54もう1.35でええわ
0815デフォルトの名無しさん
2010/04/20(火) 23:50:33Subversion使っていらっしゃりますか?
■Subversion Repository■
Boost正式
svn co http://svn.boost.org/svn/boost/trunk/ [インストール先パス]
BoostSandbox
svn co http://svn.boost.org/svn/boost/sandbox [インストール先パス]
これが一番便利だと言われたことがありますが。
0816デフォルトの名無しさん
2010/04/20(火) 23:53:57for (size_t i = 0; i < sizeof(a) / sizeof(a[0]); ++i) {
cout << a[i] << endl;
}
こんなのを、boost.arrayで書き直すと
const boost::array<int, 5> a = { { 1, 2, 3, 4, 5 } };
for (size_t i = 0; i < a.size(); ++i) {
cout << a[i] << endl;
}
sizeof使わなくて済む代わりに、要素数を明示しないと初期化できないのはどうにもならないものだろうか。
要素数をいちいち数えるくらいなら配列で書いた方がましだなぁ…。
0817デフォルトの名無しさん
2010/04/21(水) 00:05:49あれだ、
std::initializer_list
が導入された暁には全部綺麗に解決するんだよ。
たぶん。きっと。maybe。
0818デフォルトの名無しさん
2010/04/21(水) 00:10:03親切にありがとう
Subversionは触った事ないけどいい機会だからちょっと調べてみる
0819デフォルトの名無しさん
2010/04/21(水) 00:19:30Arrayリテラルがあれば色々解決できそうなんだが・・・。
template<class T,const size_t N>
size_t Length(T (&Array)[N]){
return N;
}
int main(){
int Ary[10];
size_t N= Length(Ary);
N=Length( ({0,1,2,3,4,5}) );//ここがだめ。
return 0;
}
0820デフォルトの名無しさん
2010/04/21(水) 01:15:30それも>>817の挙げたinitializer_listで解決。
template<class T>
size_t Length(std::initializer_list<T> Array){
return Array.size();
}
g++ 4.4だとこれでLength({0,1,2,3,4,5})が通る。まあ、boost::sizeでおkだが。
0821デフォルトの名無しさん
2010/04/21(水) 01:18:45あらま、std::initializer_listってクラス専用というわけではないんだね。いかん、思い込みはいかん。orz
0xって凄い改変なんだなー。改めてビックリした。
0822デフォルトの名無しさん
2010/04/21(水) 07:41:500823デフォルトの名無しさん
2010/04/21(水) 17:59:12> boostって標準ライブラリに入るか現在進行形のライブラリ?
どーゆー意味?
Boostとは?
1998年に、最初のC++言語の国際規格が誕生しました。
その規格に採用されたライブラリがいわゆる「C++標準ライブラリ」です。
しかしこのとき、さらに強力な標準ライブラリを求めて、
標準化委員会のメンバー達が新しいプロジェクトを立ち上げました。
それが Boost です。
Boost の目標は、有用で、フリーな、 移植性のあるライブラリを実際に実装・公開し、
いずれ来る次のC++標準化 (C++0X) の際に、 新標準ライブラリとして提供されることにあります。
0824デフォルトの名無しさん
2010/04/21(水) 18:07:100825デフォルトの名無しさん
2010/04/21(水) 18:19:42>いずれ来る次のC++標準化 (C++0X) の際に、
> 新標準ライブラリとして提供されることにあります。
うん その新標準ライブラリに追加される予定なのかい?
0827823
2010/04/21(水) 18:45:02うむ。
そのたった一部は、ね。
あと、boostのライブラリとしてではないが考え方が取り込まれる
(促進したor影響した)ものもある。
LambdaとかTMPとか。
0828デフォルトの名無しさん
2010/04/22(木) 13:56:480829デフォルトの名無しさん
2010/04/22(木) 17:59:430830823
2010/04/22(木) 19:44:37つい釣られてしまった。
0831デフォルトの名無しさん
2010/04/22(木) 21:29:108文字以上100文字以下のランダム文字列(偶然の一致はまず考えられないと思われるもの)
を適当な関数を呼び出すだけで生成できる方法を教えてください。
「適当な関数を呼び出すだけ」とは、つまり乱数の種を与えたりする手間もかからず
#include <iostream>
#include <get_random_string.hpp>
int main(){
std::cout << get_random_string();
return 0;
};
みたいに使えるものということです。
よろしくお願い申し上げます。
0832デフォルトの名無しさん
2010/04/22(木) 21:31:160833デフォルトの名無しさん
2010/04/22(木) 21:35:25Boost.Uuidとは?
と思いましたら
ttp://www.kmonos.net/alang/boost/classes/uuid.html
こ・・・こんなライブラリがいつの間に正式に採用されていたんですね。
ありがとうございます。
0834デフォルトの名無しさん
2010/04/22(木) 22:54:500835デフォルトの名無しさん
2010/04/22(木) 23:11:250836デフォルトの名無しさん
2010/04/23(金) 00:27:470837デフォルトの名無しさん
2010/04/23(金) 00:52:18送出したプログラムの責任には含まれない
abort という結果は監視側にある
0838デフォルトの名無しさん
2010/04/23(金) 00:53:290839デフォルトの名無しさん
2010/04/23(金) 07:21:43ってどういう機能なんでしょうか?
0840デフォルトの名無しさん
2010/04/23(金) 07:36:340841デフォルトの名無しさん
2010/04/23(金) 19:05:30無論そのくらいググりましたが、
機械翻訳とかで意味がさっぱり分かりませんでした。
0842デフォルトの名無しさん
2010/04/23(金) 22:16:54Boost.Converter Stream is a library that allows to convert text
from one character set to another in C++ language using the
Standard Library streams.
これの何が分からない?
0843839
2010/04/23(金) 22:35:43> Boost.Converter Stream is a library that allows to convert text
> from one character set to another in C++ language using the
> Standard Library streams.
Boost.Converter Streamは、
標準ライブラリのストリームを用いて
一つの「文字からなる集合」からanother in C++ languageに
テキストを変換する
ライブラリです。
このanother in C++ languageが分かりませんでした。
よろしくお願いいたします。
0844デフォルトの名無しさん
2010/04/23(金) 22:42:41Boost.Converter Stream is a library /
that allows to convert text from one character set to another /
in C++ language using the Standard Library streams.
こう切れ
0845839
2010/04/23(金) 23:17:32ありがとうございます。
> to convert text from one character set to another
この部分ですが、結局何ができるってことなのでしょうか?
anotherということは
一つの「文字からなる集合」から別の不定の一つの「文字からなる集合」?
でしょうか??
自分で言ってて全然分かりません。自分の訳がクソ過ぎるとしか。。。
0846デフォルトの名無しさん
2010/04/23(金) 23:21:51あ、”character set"を知らないのか.別名
character encoding
http://en.wikipedia.org/wiki/Character_encoding
http://ja.wikipedia.org/wiki/文字コード
0847デフォルトの名無しさん
2010/04/23(金) 23:26:53あー!
C++0xの規格書に出て来るUTFの別名である
universal character set
なら見た事あったのですが、
character setだけで文字コードって意味になったのですね。
すごくすっきりしました。
ということは
Boost.Converter Streamは標準C++ライブラリのiostreamを用いて
文字コード変換を行なうライブラリ
ということですか。
ありがとうございました。
0848デフォルトの名無しさん
2010/04/23(金) 23:40:35「文字集合」とか「文字セット」って用語もあってそっちを指す場合もあるんだけどね。
文字コードと思っておいてあまり問題もないけど
0849デフォルトの名無しさん
2010/04/23(金) 23:47:35はい、ややこしいですね。
ありがとうございます。
0850デフォルトの名無しさん
2010/04/25(日) 23:13:50"boost" で "o" を "O"へ置換すると
"bOOst"となってしまいます。
"bOost"を期待しているのですが、できませんか?
0851デフォルトの名無しさん
2010/04/25(日) 23:21:45何?釣り?
"oo" を "Oo"へ置換しろよw
0852デフォルトの名無しさん
2010/04/25(日) 23:25:50フラグformat_first_onlyがflagsでセットされていれば,最初にeにマッチした部分だけが置換される.
と書いてあるようだけど
0854デフォルトの名無しさん
2010/04/25(日) 23:34:21さすがに>>852が親切エスパー過ぎただけだろ。
てめーのレスで意味を分かってくれるとでも?
0855デフォルトの名無しさん
2010/04/25(日) 23:37:46uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
0856デフォルトの名無しさん
2010/04/25(日) 23:39:00いやいや冷静に考えてだな
> boost::regex_replace
> "boost" で "o" を "O"へ置換すると
> "bOOst"となってしまいます。
> "bOost"を期待しているのですが、できませんか?
これだけじゃ
いくらでも答えが出るだろうが。
そもそもこの程度でboost::regex_replaceを持ち出すまでもないじゃねぇか。
0857デフォルトの名無しさん
2010/04/25(日) 23:40:500858デフォルトの名無しさん
2010/04/25(日) 23:58:08boost::regex_replace でって前提で、
最初にマッチした部分だけを置換したい、って話だから、
>>852 のレスが一番普通。 って、ここまで言わないといけない幼稚園スレ
0859デフォルトの名無しさん
2010/04/26(月) 00:09:43ですね
大人な対応、サンクス
0860デフォルトの名無しさん
2010/04/26(月) 00:32:080861デフォルトの名無しさん
2010/04/26(月) 00:57:150862デフォルトの名無しさん
2010/04/26(月) 01:04:36書くだけなら、誰でもかけるが、boostよりも高速動作するのは至難の業だぞ
おまえもやってみろよ
0863デフォルトの名無しさん
2010/04/26(月) 01:05:060864デフォルトの名無しさん
2010/04/26(月) 01:16:062^32 倍は速いことに疑問を挟む余地はない
0865デフォルトの名無しさん
2010/04/26(月) 02:29:14大した技量も無い中学生って事に疑問を挟む余地はない
0866デフォルトの名無しさん
2010/04/26(月) 02:34:440867デフォルトの名無しさん
2010/04/26(月) 02:50:13uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
0868デフォルトの名無しさん
2010/04/26(月) 02:51:460869デフォルトの名無しさん
2010/04/26(月) 03:53:310870デフォルトの名無しさん
2010/04/26(月) 06:35:56まさかしてないの?
0871デフォルトの名無しさん
2010/04/26(月) 09:54:37朝起き出してきて最初のレスがそれ? なんて爽やかな朝なんだろうね。
0872デフォルトの名無しさん
2010/04/26(月) 10:00:42彼の時計はまだ夜です
しったかしないでください
0873デフォルトの名無しさん
2010/04/26(月) 10:07:330874デフォルトの名無しさん
2010/04/26(月) 10:09:520875デフォルトの名無しさん
2010/04/26(月) 10:55:11その空白期間は、きっと自家発電に熱を上げていたからに違いありません。
0876デフォルトの名無しさん
2010/04/26(月) 11:01:53無職は良いな、暇で。
俺?俺は夜勤明けだから。
0877デフォルトの名無しさん
2010/04/26(月) 11:16:18ダウンロードでとても忙しいのです
しったかしないでください
0878デフォルトの名無しさん
2010/04/26(月) 11:17:56労働時間、もって1時間が限界だお(;ω;)
0879デフォルトの名無しさん
2010/04/26(月) 11:27:12>>878
労働時間 1時間/day? 天国じゃねぇか。
0880デフォルトの名無しさん
2010/04/26(月) 14:02:22/ r'´>'"  ̄ `ヽン-!、 ::::::: Y
_,.r<「/ /__」. - ハ i ヽ/ァ ::::::::::: ::::
-'‐r'´ / / /i ハ__ /:::i ハ Y」 :::::::::: ::::
/ ,' .,' / /:::!ァ'⌒ヽ/:::::| /-、 '! :::::::::: ::/
./ i i ,' /::::/ /り:::::::::| ハ」_| i. | 人___ノ
| !/レi::: ' し' ::レ'´ァ'ハ| ,ハ !く
./レイ 7 ,, `'' ,!リ/|/ハレ' i っ
i i u ,.- 、,_ ゞ/ .iヽ! ノ て
/ /| |. / ヽ7 ! | Y. 言
/ //!. | ! / ,イ ハ i う
へ_r、_/ |ハ. ', ,、 ` ー- ' //.| / レ' か
__r'">へ `ヽ! /ヽ`i>=-ァ'´ ./ レヘ(ヽ/. 誰
ヽ`'、ー-、7 /ヽ、レ'、!/レ'::::::::、ノ が
`ヽ/(>)/ 7ヽ. ::::::::::::: ). こ 得
ヽ / ,. '´ ̄ヽ,'" ̄ン、_:::: ∠_. の す
ヽ. ノ´ ̄_ヽ'ヽノ/´,,. -、7::::::::ヽ. ス. る
ヽへ ヽ ,/´ /´ ´ /,. '´ ,. -'iハ::::::::::::i レ の
└へト、// i /,.、/」 |:::: ::::::| .は
ヽ>/ ノ // i |::: :: ノ !?
0881デフォルトの名無しさん
2010/04/26(月) 14:42:050882デフォルトの名無しさん
2010/04/26(月) 14:53:020883デフォルトの名無しさん
2010/04/26(月) 15:02:24損とか
最初に言い出したのは
だ・れ・な・の・か・しら
0884デフォルトの名無しさん
2010/04/26(月) 15:09:11(駆け抜けて行く〜)
0885デフォルトの名無しさん
2010/04/27(火) 17:35:59余分な引数が単純に捨てられるという2つの特徴が強力なために,
組み込みの lambda が Boost.Lambda や Phoenix を置き換えるに至らない.
0886デフォルトの名無しさん
2010/04/27(火) 17:42:56何?難しすぎてよく分からない。
つまり
組み込み.Lambda は compile-time polymorphic じゃない上
余分な引数が単純に捨てられるという機能を持っていないってこと?
あとびっくりしたのが
Boost.Lambda と Boost.Phoenix はまだ統合されていなかったとは。
もうてっきり一つになったのかと思ったよ。
0887デフォルトの名無しさん
2010/04/27(火) 17:43:59lambda くらいから
0888デフォルトの名無しさん
2010/04/27(火) 17:46:062〜3個で理解できるライブラリってたいした事できないだろ。
Boost.progress_displayとかならまあ・・・。
0889デフォルトの名無しさん
2010/04/27(火) 17:59:190890885
2010/04/27(火) 19:00:52あ,すいません.意味の通らない文になっていました.
おっしゃっている通りのことが言いたかっただけです.
0892デフォルトの名無しさん
2010/05/02(日) 06:18:11ブーストを使って昔作った正規表現を使ったソースのコピペをしただけなのにこんな感じのエラーが出まくるのですが何故でしょうか?
昔に作った方はコンパイルが通っています
違いは今のはフォームアプリケーションというくらいです
0893デフォルトの名無しさん
2010/05/02(日) 07:35:150894デフォルトの名無しさん
2010/05/02(日) 07:46:23ありがとうございます
マジですか…
ありがとうございました
0895デフォルトの名無しさん
2010/05/02(日) 07:47:44>違いは今のはフォームアプリケーションというくらいです
VC++ だと思うけど、C/C++ と C++/CLI はまったく違うう別物って事はわかってるか?
そして選んだプロジェクトがマネージド(C++/CLI …要は .NET、C# と同じ)になってるってわかってるか?
VC++の特にExpressでフォームとかGUIで貼り付けて作れるのは C++ じゃなくて C++/CLI の方だけ
つまり、使えない
0896デフォルトの名無しさん
2010/05/02(日) 07:55:57ありがとうございます
全く別物とか言われても同じように使える部分がほとんどなのであんまり実感が…
Regexが使えるってことでよろしいでしょうか?
0897デフォルトの名無しさん
2010/05/02(日) 22:45:59C++とマネージドの2種類の言語を同時に使えるようにして一見同じように使えるように見えるのが曲者。
結局C++とマネージドのオブジェクトには互換性が無いからはまりやすい。
たとえばマネージのクラスにC++のオブジェクトのポインタのメンバー変数はできるけどオブジェクトのメンバ変数は作れない。
学習にはC++かC#のどちらかはっきりさせたほうがいいよ。
0898デフォルトの名無しさん
2010/05/02(日) 23:21:40何かの事情で必要とした時だけ使うもの。 簡単に言えば、かなり特殊な状況で必要になるかもしれない物。
初心者が、まして C/C++ の学習に使うとかそういう類の物じゃないよな
>>896 まったく別物、の意味を良く理解して下さい。 同じように使えるのは、一見同じように使えてるように見えてるだけ
0899デフォルトの名無しさん
2010/05/05(水) 12:19:12bjam.exe --toolset=msvc-9.0 --with-chrono link=static runtime-link=shared release stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=static runtime-link=shared debug stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=shared runtime-link=shared release stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=shared runtime-link=shared debug stage
で、以下のlibファイルは生成されるのですが、
boost_chrono-vc90-mt.lib
boost_chrono-vc90-mt-gd.lib
boost_chrono-vc90-mt-1_42.dll
boost_chrono-vc90-mt-1_42.lib
boost_chrono-vc90-mt-gd-1_42.dll
boost_chrono-vc90-mt-gd-1_42.lib
libboost_chrono-vc90-mt.lib
libboost_chrono-vc90-mt-gd.lib
libboost_chrono-vc90-mt-1_42.lib
libboost_chrono-vc90-mt-gd-1_42.lib
(続く)
0900デフォルトの名無しさん
2010/05/05(水) 12:20:00以下のファイルが生成されません。
libboost_chrono-vc90-s-1_42.lib
libboost_chrono-vc90-sgd-1_42.lib←必要なのはこれ
bjam.exe --toolset=msvc-9.0 --with-chrono link=static runtime-link=static release stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=static runtime-link=static debug stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=shared runtime-link=static release stage
bjam.exe --toolset=msvc-9.0 --with-chrono link=shared runtime-link=static debug stage
error: link=shared together with runtime-link=static is not allowed
error: such property combination is either impossible
error: or too dangerious to be of any use
過去にここでも話題になってる問題の様です。
--with-python や --with-mpi や --build-type=complete も付けてみましたが
上記ファイルは生成されません。
解決策があれば教えて下さい。
0901デフォルトの名無しさん
2010/05/05(水) 13:13:30bjam --toolset=msvc stage release debug link=static runtime-link=static
0902デフォルトの名無しさん
2010/05/05(水) 13:15:25できてなかった
0903デフォルトの名無しさん
2010/05/05(水) 19:55:360904デフォルトの名無しさん
2010/05/05(水) 19:58:37https://svn.boost.org/trac/boost/wiki/Guidelines/Requirements
> Aim first for clarity and correctness; optimization should be only a secondary concern in most Boost libraries.
ってことかなぁ、とは思うが、まずは何を見て遅いと思ったのか聞こうか。
0905デフォルトの名無しさん
2010/05/05(水) 20:06:42早くなるわけが無い
何もしないのが一番早いんだから
0906デフォルトの名無しさん
2010/05/05(水) 20:31:430907デフォルトの名無しさん
2010/05/05(水) 21:51:53Jamrootの180行目、
EXIT ;
を
return ;
に変更(エラーを無視)する事によって解決します。
尚この場合、副作用としてlink=shared, runtime-link=staticもビルドが可能になってしまいますが、
これは危険な為本来ビルドが禁止されている構成です。
それから、意図しない構成や名前のおかしなゴミファイルが追加で作成される場合もありますのでお気を付け下さい。
0908デフォルトの名無しさん
2010/05/05(水) 21:58:510909デフォルトの名無しさん
2010/05/06(木) 05:13:38ていうか Boost が加速するのはプログラミング速度だよ
コンパイル速度とプログラム速度は遅くなるかもしれないけどな
0910デフォルトの名無しさん
2010/05/06(木) 06:22:18>progress_display
progress_timer「お前にばっかりいい格好させないぜ」
compressed_pair「僕も仲間にいれてもらっていい……かな?」
0911デフォルトの名無しさん
2010/05/06(木) 12:27:59Boost入れるまでVC++で「/Zm200」なんて使う日が来るとは思わなかったよ
0912デフォルトの名無しさん
2010/05/06(木) 12:54:12ttp://codezine.jp/article/detail/1937?p=2
shared_ptrで循環参照が生じる例がすごいわかりやすかった。
0913デフォルトの名無しさん
2010/05/06(木) 12:55:42現実的にいつになったらこのプログラムが完成するのか分からない
から使うって感じかな。
0914デフォルトの名無しさん
2010/05/06(木) 12:58:56先進的でかっこいい
0915デフォルトの名無しさん
2010/05/06(木) 13:21:40その煽りは哀しいからやめようぜ。自分を曝け出してるようにしか見えないw
0916デフォルトの名無しさん
2010/05/06(木) 13:29:34先進的でかっこいい
これだな。
0917デフォルトの名無しさん
2010/05/06(木) 18:42:020918デフォルトの名無しさん
2010/05/06(木) 18:44:320919デフォルトの名無しさん
2010/05/06(木) 19:22:110920デフォルトの名無しさん
2010/05/06(木) 20:59:02一応、目的のファイルは生成されました。(link=shared, runtime-link=staticはしなくても)
Boost.Chrono のサンプルプログラムも動きますが、リンク中警告がいっぱい出ます。
一部だけ
1>libboost_chrono-vc90-mt-sgd-1_42.lib(run_timer.obj) : warning LNK4049: ローカルで定義されたシンボル ?throws@system@boost@@3Verror_code@12@A (class boost::system::error_code boost::system::throws) がインポートされました。
これは無理やりビルドしたせい?
0921デフォルトの名無しさん
2010/05/06(木) 22:33:31内に部署だと逆だな、
検索のアルゴリズムのかけないの?
的なあつかいになるから、まったく使わないな
0922デフォルトの名無しさん
2010/05/06(木) 22:57:350923デフォルトの名無しさん
2010/05/06(木) 23:07:55何と比較して?
遅い遅い言われるけど結構早いよ。
まあ当然だが参照カウントの作業分遅くなるけど、
動的削除子とかスレッドセーフとかの機能ももっているので
0924デフォルトの名無しさん
2010/05/07(金) 00:57:29と910先生も仰っているぞ
0925デフォルトの名無しさん
2010/05/07(金) 01:05:440926デフォルトの名無しさん
2010/05/07(金) 01:10:26shared_ptrは共有の参照を作るためにの必要な機能をわずかなコストで実現してる。スレッドセーフだし安心して使える。
共有が必要でshared_ptrを使わない場合は同等の共有時のリソース管理を自分で書かなくてはならないから結局は同じになる。
共有が不要な参照の場合はshared_ptrを使うまでも無く参照やsocped_ptrを使えば全くコストは掛からない。
0927デフォルトの名無しさん
2010/05/07(金) 01:25:23boostを使ってるのかどうかとか
そこら辺が全然見えない
0928デフォルトの名無しさん
2010/05/07(金) 01:56:00boostは標準じゃないからshared_ptrを使わなくても責めることはできないだろう。
c++0xが標準化されたら責めてもいい。
0929デフォルトの名無しさん
2010/05/07(金) 02:05:49関数呼び出しとかはshared_ptrの参照使っても危険性は無いような気もするけど……
0930デフォルトの名無しさん
2010/05/07(金) 09:04:44> shared_ptrの参照を使えば呼び出しコストはかからないのかしらん?
どーゆーこっちゃ?
字面どおりに解釈すると
「const shared_ptr<T>&と書けば呼び出しコストはかからないのかしらん?」
ってこと?
何言っているのかわからんよ。
0931デフォルトの名無しさん
2010/05/07(金) 09:06:33boostが動かない環境でも使える様に、じゃないのかな。
0932デフォルトの名無しさん
2010/05/07(金) 10:19:12でもboostのスレッドとかMUTEX使ってたりします。
ゲーム用のエンジンなんですが
0933デフォルトの名無しさん
2010/05/07(金) 11:58:330934デフォルトの名無しさん
2010/05/07(金) 13:42:390935デフォルトの名無しさん
2010/05/08(土) 02:27:31何を犠牲にしても構わない言語でもあるからな。そういう危険性を剥き出しにせず、
せめてオブラートで(破れやすくても)包む、くらいはしておきたいが、それすら
犠牲にしたいことだってある。仕事なんてそんなもんだ。
常にshared_ptrを使う方が100%いい、なんてことは無い訳で、何か理由があって
そうしたくないなら、好きにしていい。
0936デフォルトの名無しさん
2010/05/08(土) 19:16:520937デフォルトの名無しさん
2010/05/08(土) 20:44:48boost::threadが使いやすいだけなんだ
0938デフォルトの名無しさん
2010/05/08(土) 22:12:29shared_ptrは共通のインターフェースとしても使えるんで広範囲に使用する。
だから、俺スマポをshared_ptrに変えるにはプロジェクト全体に適用する必要があるから移行は結構大変なんで見送られてるんじゃないか?
俺も昔は、俺スマポをshared_ptrに変えるのは躊躇してたけど、boost::bindでメンバ関数をバインドするときのthisポインタとしてshared_ptrが使えるのを発見したときに移行を決意した。
俺スマポにくらべてべhared_ptrはライブラリが対応しているメリットは大きい。
0939デフォルトの名無しさん
2010/05/08(土) 22:17:58>hared_ptrは
毛が生えてるのかと思った。うそです
0940デフォルトの名無しさん
2010/05/08(土) 22:18:11std::unique_ptrやstd::shared_ptrが正式に採用された暁には
もう全然悩む事なくなるな。
0941デフォルトの名無しさん
2010/05/09(日) 18:55:41常識で考えろよ
シュッポッポの頭頂部を見れば分かるだろ
0942デフォルトの名無しさん
2010/05/09(日) 23:09:400943デフォルトの名無しさん
2010/05/10(月) 01:13:29Context Policyとやらをいじればいいみたいなんだが、サンプルとか見ても全然わからないんだ。
0944デフォルトの名無しさん
2010/05/10(月) 01:33:000945デフォルトの名無しさん
2010/05/12(水) 01:54:41代わりに完全に文字列と一致した時にtrueを返す関数オブジェクトは無いですか?
つまり、単一の文字ではなく、文字列で分割したいのです。
無ければ作りますが、おそらくあると思うのです。
が、探すことができませんでした。
0946デフォルトの名無しさん
2010/05/12(水) 16:02:260947デフォルトの名無しさん
2010/05/12(水) 16:22:20#include <boost/test/minimal.hpp>
#include <vector>
#include <string>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/join.hpp>
int test_main(int,char*[]) {
std::string source = "chocolateandcandyandicecreamandtea";
std::string sep = "and";
std::vector<std::string> result;
boost::iter_split(result, source, boost::first_finder(sep));
BOOST_CHECK (source == boost::join(result, sep));
return 0;
}
0948デフォルトの名無しさん
2010/05/12(水) 23:40:04要約してみたソース
http://codepad.org/x2a4fMVL
クラスWholeとクラスPartがあり、この両方がシリアライズ対象です。
WholeはPartを複数所有し、Partは所有者であるWholeを参照しているような関係です。
Partはデフォルトコンストラクタを持っておらず、引数はWholeへのポインタ1つとなっているのですが、
save_construct_dataでWholeを書き出そうとすると以下のコンパイルエラーが出ます。
> error C2679: 二項演算子 '<<' : 型 'Whole *' の右オペランドを扱う演算子が見つかりません (または変換できません)。
(VC++ 2008 Express Edition)
codepad上では75行目になりますが、
このエラーが何故出るのか、どうすればエラーが出ないように出来るかで悩んでいます。
貼り付けるため1つにまとめてありますが、元は
Whole.h,Whole.cpp,Part.h,Part.cpp,main.cpp
の5ファイルとなっています。
よろしければアドバイスお願いします。
0949デフォルトの名無しさん
2010/05/13(木) 20:38:28手元の環境(gcc 4.3.4 on cygwin, boost 1.42)だと 75 行目の
ar << p->getOwner();
を
Whole *tmp = p->getOwner();
ar << tmp;
に書き換えるとコンパイルできるね。
operator<< が非 const な reference を引数に取っているので一時変数である
getOwner の戻り値を直接渡す事が出来ない。
0950デフォルトの名無しさん
2010/05/14(金) 00:06:08なんとかしてほしいなぁ
ttp://old.nabble.com/Boost-1.43---Exception-before-main%28%29-is-called-td28536505.html
0951デフォルトの名無しさん
2010/05/14(金) 01:20:190952デフォルトの名無しさん
2010/05/15(土) 12:03:43boost::lexical_cast<foo>(100)
とすると、デフォルトで std::ostream<char> を介して変換される。
これを wchar_t のストリームが使われるよう変えたりするには
boost::detail::stream_char を特殊化する以外の方法ってないのかな。
detail::以下に触るのはどうにも気持ち悪い。
0953デフォルトの名無しさん
2010/05/15(土) 12:07:12× std::ostream<char>
○ std::basic_stringstream<char>
0954デフォルトの名無しさん
2010/05/15(土) 15:11:59wstringで渡せばwchart_tのストリームを使ってくれたと思うよ。
0955デフォルトの名無しさん
2010/05/15(土) 15:25:57boost::lexical_cast<std::wstring>(100)
とかやると wchar_t のストリームで変換される。
この文字型の分岐を行っているのが boost::detail::stream_char テンプレートなわけだ。
で、basic_string等については stream_char が特殊化されていて、
内部の文字型に応じて処理される実装になっている。
で、デフォルトの stream_char<T>::type は常に char を返す。
これを呼び出し側から明示的に指定する方法はないかな、ってこと。
どうやら現行のLexicalCastの実装的に無理っぽい?
0956948
2010/05/18(火) 21:16:40こちらの環境でもコンパイル出来るようになりました。
規制に巻き込まれたので後で報告しようとして忘れていました。
> operator<< が非 const な reference を引数に取っているので一時変数である
> getOwner の戻り値を直接渡す事が出来ない。
今まであまり意識してなかったのですがこういう事ってあるんですね…。
勉強になりました。アドバイスありがとうございました。
0957943
2010/05/22(土) 00:45:48boost::wave::contextの3つ目のtemplate引数に、boost::wave::iteration_context_policies::load_file_to_stringの
ソースをコピペして読み込み部分だけ書き換えた自作のファイル読み込みクラスを渡すと、読み込み部分の入れ替えはできた。
ただ、「includeするファイルが存在するか?」を判定する処理の部分までは変更できないので、
例えばzipファイル内のファイルをincludeしようとする処理とかは無理なのかな。
Context Policyに、found_include_directiveという#includeを見つけた時に呼び出されるフック関数があるので、
これを使えばいいんだろうけど…
0958デフォルトの名無しさん
2010/05/25(火) 08:34:20boost_x_xx_x.zipをダウンして解凍
ルートフォルダに移動
bootstrap.batを実行
bjamを実行
ではダメなんですか?
bootstrapの時点で失敗するんですが・・・
0959デフォルトの名無しさん
2010/05/25(火) 09:08:170960デフォルトの名無しさん
2010/05/25(火) 22:53:03つhttp://www.kmonos.net/alang/boost/install.html
0961デフォルトの名無しさん
2010/05/25(火) 22:55:22すいませんvc++じゃないんです
>>958
そのサイトの手動の方法を見てやったら失敗したので質問しに来ました
0962デフォルトの名無しさん
2010/05/25(火) 23:12:35ttp://www.boost.org/doc/libs/1_43_0/more/getting_started/unix-variants.html
0963デフォルトの名無しさん
2010/05/26(水) 16:43:300964デフォルトの名無しさん
2010/05/26(水) 20:00:37マッチする部分文字列が見つかったとき、resultsにその詳細が納められます。
resutls.str(n)は、regexにあるn番目の’('とそれに対応する’)'に囲まれた部分にマッチする部分文字列(std::string)を返します。たとえば:
const char* source = "abc1234def";
boost::reg_expression<char> regex = "([a-zA-Z])(.*)[a-zA-Z]";
boost::match_results<const char*> results;
boost::regex_search(source, results, regex);
では、
result.str(1) = "c"
すいません。これが理解できません。教えてください
0965デフォルトの名無しさん
2010/05/26(水) 20:14:28result.str(1) = "a"
result.str(2) = "bc1234"
にならないのかしら?
0966デフォルトの名無しさん
2010/05/26(水) 20:21:000967デフォルトの名無しさん
2010/05/26(水) 20:35:44一つのヘッダ、lib 読んだら、全ての機能がつかるやつ。
0968デフォルトの名無しさん
2010/05/26(水) 21:19:080969デフォルトの名無しさん
2010/05/26(水) 22:00:02bcp使って自作するよろし
0970デフォルトの名無しさん
2010/05/26(水) 22:15:17コンパイルは不要。
http://www.boostpro.com/download
0971デフォルトの名無しさん
2010/05/26(水) 22:18:49多くのヘッダファイルを読み込むためと思う。
機能を限定して使えるやつだけ絞って、
最小のヘッダだけであとはlibに内蔵したら速いはずだよ。
0972デフォルトの名無しさん
2010/05/26(水) 22:21:070973デフォルトの名無しさん
2010/05/26(水) 22:25:06コンパイル時間が掛かる。多方面にヘッダファイルを読みに行くのが駄目なんだ。
特殊なケースだとdouble int float stringなどをlibに展開しておいても良い。
関数の性質から任意の型を受け入れない物もある。
0974デフォルトの名無しさん
2010/05/26(水) 23:12:16$ cat hoge.h
#include <boost/asio.hpp>
$ g++ -c hoge.h
$ ls -l
total 37364
-rw-r--r-- 1 oreore oreore 26 May 26 09:58 hoge.h
-rw-r--r-- 1 oreore oreore 38207008 May 26 10:02 hoge.h.gch
0975デフォルトの名無しさん
2010/05/26(水) 23:36:110976デフォルトの名無しさん
2010/05/27(木) 02:48:11主要な有名どころだけをまとめて一ヘッダ、一Libで出来れば
需要あるよ。
boostユーザーの大半が使うかもしれないよ。
HPに誘導してあふぃりえいと出来るよ。
0977デフォルトの名無しさん
2010/05/27(木) 03:55:26必要ないはずなのになんで表示したんだろ。
0978デフォルトの名無しさん
2010/05/27(木) 07:53:200979デフォルトの名無しさん
2010/05/27(木) 12:19:05そんなことする目的は知らないが。
0981デフォルトの名無しさん
2010/05/27(木) 19:30:11「IT業界最強のライブラリboostをぜいたくに使用した高級プログラムです」とか書いちゃうわけか。
偽装表示もいいとこだけど、それを取り締まる法律とかあるかな。詐欺罪?
0982デフォルトの名無しさん
2010/05/27(木) 19:43:290983デフォルトの名無しさん
2010/05/27(木) 19:54:020984デフォルトの名無しさん
2010/05/27(木) 20:29:100985デフォルトの名無しさん
2010/05/27(木) 21:39:31これもバイナリには全く含まれないケースか
Releaseビルドでは使用していません><
とか
0987デフォルトの名無しさん
2010/05/27(木) 23:33:35解決策を教えて下さい。
C:/lib/boost/boost_1_42_0/libs/fiber/build\pyutils.jam:2: in load
rule PYTHON_IMPORT_RULE unknown in module pyutils.
C:/lib/boost/boost_1_42_0/tools/build/v2/kernel\modules.jam:283: in modules.impo
rt
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:903: in import
libs\fiber\build\Jamfile.v2:14: in modules.load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:313: in load-jamfile
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:62: in project.load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:763: in project.use
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:89: in load-used-proj
ects
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:73: in load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:168: in project.find
C:/lib/boost/boost_1_42_0/tools/build/v2\build-system.jam:553: in load
C:\lib\boost\boost_1_42_0\tools\build\v2/kernel\modules.jam:283: in import
C:\lib\boost\boost_1_42_0\tools\build\v2\kernel\bootstrap.jam:142: in boost-buil
d
C:\lib\boost\boost_1_42_0\boost-build.jam:17: in module scope
0988デフォルトの名無しさん
2010/05/27(木) 23:41:23ttp://booster.x0.to/
0989デフォルトの名無しさん
2010/05/28(金) 00:33:23>IT業界最強のライブラリboostをぜいたくに使用した高級プログラムです
それ採用してもいいですか
0990デフォルトの名無しさん
2010/05/28(金) 01:16:130991デフォルトの名無しさん
2010/05/28(金) 01:18:34あとshared_ptrとformat
0992デフォルトの名無しさん
2010/05/28(金) 01:36:18regex、xpressive、spiritとか使った事ない
だからこのスレの話題についていけない事が多い
0993デフォルトの名無しさん
2010/05/28(金) 02:44:16もうBoostなくてもそんなに困らない
0994デフォルトの名無しさん
2010/05/28(金) 02:48:23pool, pp, range, smart_ptr, string_algo, thread, timer, type_traits
あたりはよく使うよ
0995デフォルトの名無しさん
2010/05/28(金) 03:50:510996デフォルトの名無しさん
2010/05/28(金) 04:33:280997デフォルトの名無しさん
2010/05/28(金) 06:53:02と
functionかな
全然使いこなせないわorz
0998デフォルトの名無しさん
2010/05/28(金) 06:55:190999デフォルトの名無しさん
2010/05/28(金) 06:59:241000999
2010/05/28(金) 07:00:2710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。