1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:04:01 ] 過去スレ part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/ part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/ part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/ part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/ part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/ ■関連サイト■ Boost C++ Libraries www.boost.org/ Boost 翻訳プロジェクト boost.cppll.jp/HEAD/ Let's Boost www.kmonos.net/alang/boost/ boost info shinh.skr.jp/boost/
2 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:05:30 ] ■関連書籍■ Boost C++ Libraryプログラミング www.amazon.co.jp/exec/obidos/ASIN/4798007862/ Beyond The C++ Standard Library www.amazon.co.jp/exec/obidos/ASIN/0321133544/ C++ Template Metaprogramming www.amazon.co.jp/exec/obidos/ASIN/0321227255/ The Boost Graph Library www.amazon.co.jp/exec/obidos/ASIN/0201729148/ ■関連スレ■ C++相談室 part61 pc11.2ch.net/test/read.cgi/tech/1205059063/ C++0x 3 pc11.2ch.net/test/read.cgi/tech/1204808027/ 【C++】STL(Standard Template Library)相談室 9 pc11.2ch.net/test/read.cgi/tech/1204045410/
3 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:06:26 ] Loki sourceforge.net/projects/loki-lib/ JTC1/SC22/WG21 - The C++ Standards Committee www.open-std.org/jtc1/sc22/wg21/ POCO, the C++ Portable Components www.appinf.com/poco/info/ sourceforge.net/projects/poco/ The unofficial BCB Boost patches bcbboost.sourceforge.net/
4 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:08:42 ] 乙だけど boobsを語れゴルァ boost::array<part, 6> pc11.2ch.net/test/read.cgi/tech/1207744477/ boobsが気に入らなかったのか
5 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:10:44 ] 検索できなかったから素で立てたに1票。 スレタイ違いは正直致命的だと思うので 立て直しは仕方が無い気がする。
6 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:16:43 ] >boobs 確かにおっぱいは好きだが、タイポは嫌いだしいいんじゃね。
7 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:30:28 ] boostを全部ビルドしようと思って bjam --toolset=msvc-9.0 release debug link=static,shared runtime-link=static,shared -sHAVE_ICU=1 -sICU_PATH="C:\Program Files\icu" --prefix="C:\Program Files\boost" install ってしたけどダメだった. runtime-link=static,shared の部分をなくせばコンパイルが始まるんだけど,このオプション指定は外しても問題なし?
8 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:23:02 ] runtime-link=static,shared こんな風に複数指定できるの? おれはいつもこんな風に指定しているんだけど。 runtime-link=static runtime-link=shared
9 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:06:46 ] そもそもlinkとruntime-linkってどう違うの?
10 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:12:11 ] >>9 まったく別物。 linkは、スタティックリンク(lib)とダイナミックリンク(dll)をビルドするかどうか。 runtime-linkは、CRTのランタイムライブラリをスタティックリンクするか、ダイナミックリンクするかどうか。 例えばVCの場合、runtime-linkをsharedにした場合は、dllも一緒に配布しなければならない。
11 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:33:46 ] その場合配布しなければならないdllってMSVCRTのこと? 知らなかった
12 名前:デフォルトの名無しさん [2008/04/15(火) 00:34:17 ] Asioはビルド不要と喜んでいたら、 Systemを使っていた/(^o^)\
13 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 05:37:31 ] チラシの裏! 1.35.0のdarwin.jam読んでユニバーサルバイナリをサクッとビルドする方法がやっとわかった bjam --toolset=darwin architecture=combined address-model=32,64 link=static,shared release debug stage toolset=darwin中?の更にオプションになってるのを、別オプションで--付くと勘違いしてたo..rz ただこれでもfilesystemのdylibはエラー出るけどstaticは問題無さそう、たぶん。
14 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 09:00:21 ] >>12 asio良いよな
15 名前:デフォルトの名無しさん [2008/04/18(金) 02:14:33 ] boost::mt19937をつかってクラスを作ったのですが、これをつかうとコンパイル時に以下のワーニングが出ます。 ソースをみたのですが、、、よくわかりませんでした。どなたかワーニングが出る理由を教えてください。 class BMP { public: BMP(unsigned int seed=0) : gen(static_cast<boost::mt19937::result_type>(seed)), dst(0.0, 1.0), rv(gen, dst) {} double operator()() { return rv(); } private: boost::mt19937 gen; boost::normal_distribution<double> dst; boost::variate_generator<boost::mt19937, boost::normal_distribution<double> > rv; }; ワーニングの内容 sample.cpp:51: warning: 'bmp$rv$_dist$_r1' may be used uninitialized in this function sample.cpp:51: warning: 'bmp$rv$_dist$_cached_rho' may be used uninitialized in this function ちなみに51行目は、 BMP bmp; となっていて、これをg++で-O3 -Wallでコンパイルするとワーニングが出ます。でも、-O3をとると出ません。 どうかよろしくお願いします。
16 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 09:17:47 ] -O3だと最適化のためにチェック項目が増えるから警告が出るんだな。 警告の内容を読めば判るとおり、初期化前に値を参照している怖れがある。 問題ないプログラムを書いているなら無視してOK。
17 名前:デフォルトの名無しさん [2008/04/18(金) 22:39:28 ] >>16 ありがとう。問題ないプログラムだと思うので、とりあえずこのままでやっときます。
18 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:10:24 ] 久々にSVN更新かけてみたら何かspirit関連一斉に変わった?
19 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:11:13 ] spirit.v2
20 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:12:45 ] v2になったのか! 目玉機能とかあるのかな?
21 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 12:30:39 ] 良く見ていないが以前から計画のあったphoenix統合が実施されてるっぽい?
22 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:05:02 ] boost1.35 を VC++7.1 でビルドしようとしたら LNK1104: コンパイラは、ファイル 'libboost_filesystem-vc71-sgd-1_35.lib' を開くことができません。 と出た.誰か助けて インクルード方法は #include "boost/filesystem/fstream.hpp" で,VC++のオプションでインクルードファイルに c:\..\boost と設定しています
23 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:28:29 ] bjam使っとけば
24 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:37:41 ] 今ごろは.libがboostに必要なの?
25 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:51:12 ] もしかして「今時は」と「この頃は」が混ざったか?
26 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:10:24 ] リンカオプションも知らずにboostをビルドですか
27 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:11:54 ] 「今頃は」という言葉もあると思った >>22 構成プロパティ>リンカ>全般>追加のライブラリディレクトリ に(boostのディレクトリ)\libsを追加 そうすればVC++ではboostがオートリンクしてくれる それはともかくスタティックリンクの仕方も分からず ヘッダのインクルードと混同しているのにboostを使うのは無謀と思うんだが…… まあ並行して学んだ人もいるかもしれないけど あと「boostをビルド」じゃなくて「boostを使ったプロジェクトをビルド」だろう。多分
28 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 18:31:31 ] >>27 boostビルドしなきゃライブラリができないじゃないか
29 名前:27 mailto:sage [2008/04/29(火) 18:54:50 ] あ、1.35はWindows用インストーラはまだないのか…… 初心者がbjamなしでわざわざビルドするのはもっと無謀だろ……
30 名前:22 mailto:sage [2008/05/01(木) 08:36:22 ] すみません色々見直したんですが bjam は boost-jam-3.1.16-1-ntx86.zip のものを boost1.35 を VC++7.1 を使用してboostをビルド したつもりだったんですがやはりVCで「boostを使ったプロジェクト」のビルドが出来ません. 「ツール」→「オプション」→「プロジェクト」→「VC++ディレクトリ」で インクルードディレクトリに C:\...\boost\bin.v2 ライブラリファイルディレクトリに C:\...\boost\stage\lib としています. 何がいけないのか自分だけではよくわかりません.どうかご教示いただけないでしょうか?
31 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 09:12:28 ] >>30 まずはそのlibファイルがあるか確認しよう。
32 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:04:44 ] bjamのオプションをちゃんと指定しないと 足りないライブラリがあるからねぇ。 1.34.1からオプションが変わってたので、 自分も何度かビルドし直しました。
33 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:40:22 ] >>30 ttp://www.boost-consulting.com/products/free まずは1.34.1インストーラを使ってみたらいいんじゃないかな?
34 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 05:34:02 ] >>22 >>7 と>>8 を夜魅魔症
35 名前:22 mailto:sage [2008/05/03(土) 00:37:26 ] >>31 確認したところ,-sgd- 付きの lib ファイルはありませんでした. 情けないことに指摘されるまでずっとあると思っていました. >>34 シングルスレッド向けlibファイルを作るオプションコマンドを色々な形で実行してみても fail update と出て -sgd- ファイルが作られることはありませんでした. 他にもboostの全てをビルドするしたという方と同じコマンドを実行してもやはりfail updateと出て生成されることはありませんでした. >>33 var1.34.1インストーラを使い,var1.35 とは別に filesystem を生成し,プロジェクトもそれに合わせて設定しなおしたところプロジェクトのビルドはすんなりと通りました. 初めて boost を使うのでもう最新版であることにこだわらず var1.34.1 を使うことにしました. 解決せずに終わることにすっきりしないでもないですが,余裕もないのでこれで質問を終わります. レスしてくれた方々,ありがとうございました.解決せずに〆ることになり申し訳ございません.
36 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:15:00 ] 世の中にグラフ構造のデータは沢山あるけど boost.graph を活用している人いますか? ちょっとしたデータなら自分で自前グラフデータ作ったほうがいいのか その辺のしきいってどのあたりなんだろ
37 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:00:59 ] インストーラ版がわけ分からなくて, Let's Boostの指示通りで成功した俺が来ましたよ. Visual Studio 2005 ProのVC++への導入ができました. boost_1_35_0.zipとboost-jam-3.1.16-1-ntx86.zipを入手し, "%VS80COMNTOOLS%vsvars.bat" を実行し, D:\Develop\boost_1_35_0\bjam.exe --toolset=msvc link=static,shared release debug stage を実行しました.VSのパス設定は インクルードファイル:D:\Develop\boost_1_35_0 ライブラリファイル:D:\Develop\boost_1_35_0\stage\lib とし,C++ クックブック レシピ9.12のビルド・実行が成功しました. 補足要求とか,誤解指摘などあればどうぞ.
38 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:14:30 ] というかなんでいまさらになって、Boostのインストールの話ばかりなんだ。 インストールなんて難しくないだろ。 SVNからHEAD引っ張ってきてbjamでビルドするだけだろ。
39 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:22:32 ] 使ってみようっ人がが増えたんだからいいじゃないか。
40 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:35:08 ] >>38 Win32環境だと使ってるコンパイラによって困ったりするのと 一番こまっちゃうのはVSのバージョン複数同時インストールしてるとワケワカメになる事だと思う。 unix系とりあえず自分の使ってるシステムでは問題でなかった。
41 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:48:15 ] いや、それほど困るか? 俺はstageディレクトリを作っているが、要するにVSのバージョンに合わせて、 stageディレクトリを複数用意すればいいだけの話だろ。 VSがひとつだけだとしても、32bitコードと64bitコードがあるが。
42 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:32:30 ] boost便利なんだけどバイナリサイズが凄い勢いで大きくなってくんだよなぁ
43 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:09:24 ] さっさとC++の標準になってもらいたいもんだな
44 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:32:34 ] というかlambdaが標準入りで大幅に書き直しを迫られるものが多いかと… さらにtraits→concept。 どちらも下方互換性が失われるわけじゃないから、 boostに留まるならすぐに直す必要はないけど、 標準入りするには必須かと。
45 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:18:24 ] VCバージョン違いに加えてstlport使ってると更にややこしい 何とかビルドするのに1週間も掛かってしまったぜ
46 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 04:59:13 ] インストーラー出るのいつも遅いけど作るのそんな時間かかるもんかね?
47 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:03:59 ] 最近のboostは ./configure make checkinstall (以前のバージョンだとここでこけた) できるな。
48 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 13:45:05 ] >36 Boost Graph はグラフデータを表す方がメインじゃなくて、汎用的に使えるグラフ上のアルゴリズムの方がメインだと思う。 自前でグラフデータ作るなら Boost Graph に渡せるようにしとくと便利、みたいな。 ちょっとしたデータの方こそ adjacency_list とか使ってさくっと済ませて、速度なり機能なり必要な要件があるなら それに適したデータを作るなり、アダプタ書くなりする方がいいんじゃないかと思う。
49 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:51:55 ] .hpp がきもちわるくて Boost つかってない なんだよ Header++ って。ヘッダ仕様自体は変わってないつーのwwww
50 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:52:51 ] そうかそうか
51 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:52:59 ] 中身がCなヘッダとC++なヘッダを区別したいお と思ったことが一回ぐらいない?
52 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 18:58:05 ] .hpp って読むときどうしてもドットフププって読んじゃうんだよね。
53 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:12:19 ] >>49 でもこの分野、既存の用語の「反対の意味」とか「○○バージョン」を意味したいだけの造語、 結構多いでしょ。 ソフトウェアだって、単にハードウェアとの対比で生まれただけで、別に ソフトウェアの何かがsoftだからそう呼ばれるようになったわけじゃないし。
54 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:41:02 ] そもそもBoostのヘッダの拡張子が.hだったとしても、 どうせ49は別の難癖付けてBoostを使わないと思う。 はっきりとBoost使ったコードはきもいから嫌だとか 正々堂々と言うほうがかえってすっきりした気分になれる、たぶんお互いに。
55 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:00:57 ] 大体、拡張子が気に入らないから使わないとかおかしいだろw
56 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:17:00 ] 標準ライブラリは拡張子が無いので使いませんw
57 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 03:46:35 ] hppって昔からあるような
58 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 04:34:00 ] hppもHもhhもhxxもh++も大昔から普通にあります。 ただ>>49 が誰かに構ってほしかっただけです。 気にしないで下さい。
59 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 13:47:23 ] うざ
60 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 14:00:36 ] .cxxって何だよw と思ったことならある
61 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 14:06:30 ] >>60 xx が ++ を英字で模倣したものだと気付くのに時間かかった。 Makefile とかは大文字で普通に使ってるから余計わかりにくい。
62 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:23:27 ] C++コードからしか使われないヘッダの拡張子は .h を使わないで欲しい Cからも使えるヘッダなら .h でいいけど
63 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:32:07 ] boostベースの数値計算library opentissue が便利
64 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 06:25:23 ] CとC++の区別が付かない人がいるのか そんな人がCとC++を使ったら「CっぽいC++」と「C++」を書くんだろうな
65 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 06:56:22 ] 逆だろ。CとCっぽいC++じゃね。
66 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:13:29 ] ビャーンの本では .h を使ってるという理由だけで .h を使ってる。 boostのfaqに書いてある理由も理解できるので、別に .hpp に嫌悪感を抱くこともない 拡張子ネタとは関係ないけど、いくらビャーンの本で推奨されてもさすがにプログラミング環境でプロポーショナルフォントを使うのはナイ
67 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:19:58 ] そうか? 普通にプロポーショナルフォントを使っているが。
68 名前:デフォルトの名無しさん [2008/05/13(火) 10:51:26 ] boost::formatに関する質問です。 Boost1.3.4.1を使用しているのですが、formatのparseメソッド(※)は使わない方がいいのでしょうか? ※宣言部分のコメントには「resets buffers and parse a new format string」とあり、コンストラクタでコールされています。 動作ですが、 boost::format fmt( "abcd %1$s" ); fmt % 1; std::cout << fmt << std::endl; fmt.parse( "efgh %1$s" ); fmt % 2; std::cout << fmt << std::endl; とすると出力が abcd 1 2 となってしまいます。
69 名前:デフォルトの名無しさん [2008/05/13(火) 10:52:22 ] (続き) 一応、 @.\boost\format\parsing.hpp の400行目(parseメソッドの最初)に clear(); を追加。 A.\boost\format\format_implementation.hpp の行目(clearメソッドの最初)に prefix_.resize(0); を追加。 とすることで abcd 1 efgh 2 と出力されるようになるのですが、この修正だけで問題ないのか心配です。 (ちなみに1.3.5.0のソースもDLして確認してみましたが、該当するような処理はありませんでした。) まぁそもそもformatオブジェクトを使いまわしたところで大してパフォーマンス上がるわけではないんですがw 宜しく御願いします。
70 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:07:22 ] lambdaでPOD型扱うのに記述がめんどいんで #define mem_of_1(Type, MemberName) (&_1->*&Type::MemberName) #define mem_of_2(Type, MemberName) (&_2->*&Type::MemberName) みたいにして使ってるんだが、こういうの標準でも定義してもらえないものか・・・ オレ定義だと可搬性に欠けるのが難点で。
71 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:13:16 ] >>64 何か線を引きたいようだけど C++ コンパイラで便利な C という位置づけもあるんじゃないか。 抽象化にこだわって変なソース書く人もいるわけだろ? ようはスマートに処理をこなせるかということではないかな。
72 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:13:23 ] >>66-67 できればプロポーショナルフォントを使いたいが、 そこら辺のフォントだとプログラミングには使いづらい。 ピリオドやカンマ、セミコロンが小さすぎる。ゼロには斜線が欲しい。 どこかプログラマのためのプロポーショナルフォントなんて出してくれないものか。
73 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:49:38 ] >>70 boost-devel ML にコード投稿したら 多分とりこんでもらえる
74 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:15:20 ] >>70 ttp://www.boost.org/doc/libs/1_35_0/doc/html/lambda/le_in_details.html#lambda.members_variables_as_targets でがまんしる
75 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 18:11:19 ] >>72 VC6とかに入ってるFONTEDITで自分で作ればいい。 90文字程度作ればあとはフォントリンクして終わりだから簡単だぞ。
76 名前:75 mailto:sage [2008/05/13(火) 18:32:39 ] ごめん、Win環境限定ならね。
77 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:02:53 ] プロポーショナルフォントでプログラムに困るようなうんこ環境は Windows だけなので問題ない。
78 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:23:30 ] つまんね
79 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 07:18:51 ] >>71 CっぽくてもC++で作られたライブラリはCじゃ使えないから線引きは必要だ
80 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:47:56 ] Emacs使いな人、もしいたらこれでboost使っても 補完が働くか試してみないか? ttp://cedet.sourceforge.net/intellisense.shtml
81 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 17:37:45 ] #include <boost/array.hpp> #include <boost/serialization/serialization.hpp> struct S { boost::array<int, 3> data; private: friend class boost::serialization::access; template<class Archive> void serialize(Archive& ar, unsigned int ver) { ar & data.c_array(); } }; ttp://hw001.gate01.com/eggplant/tcf/cpp/boost_serialization.html#array ここを見て、boost::array.c_array()で生の配列を取り出してシリアライズしようと思ったのですが、 error C2679: 二項演算子 '&' : 型 'int *' の右オペランドを扱う演算子が見つかりません (または変換できません)。 というエラーが出てしまいました。 どうやればシリアライズできますか?
82 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:56:44 ] ar & data.elems;でどうよ。
83 名前:81 mailto:sage [2008/05/20(火) 13:03:27 ] >>82 thx コンパイル通りました。 データがpublicに置いてあるとは盲点でした。 連続で申し訳ないですが、もう1つ質問させて下さい。 Let's Boostで解説されているフルインストールをしたんですが、 ライブラリを必要とするboostを使ったものをビルドするとリンクエラーが出てしまいます。 例えば、 ttp://www.kmonos.net/alang/boost/classes/serialization.html このサンプルをビルドすると、 a.obj : error LNK2001: 外部シンボル ""protected: __thiscall boost::archive::basic_text_iprimitive<class std::basic_istream<char,struct std::char_traits<char> > > ::~basic_text_iprimitive<class std::basic_istream<char,struct std::char_traits<char> > >(void)" (??1?$basic_text_iprimitive@V?$basic_istream@DU?$char_traits@D@std@@@std@@@archive@boost@@IAE@XZ)" は未解決です。 といったa.objでのerror LNK2001が7個(a.objはサンプルソースをコピペした.cpp) libboost_serialization-vc80-mt-gd-1_34_1.lib(basic_serializer_map.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base@std@@QAE@XZ)" は未解決です。 といったlibboost_serialization-vc80-mt-gd-1_34_1.libでのerror LNK2001が12個出ます。 libboost_serialization-vc80-mt-gd-1_34_1.libでエラーが出るということは、 ライブラリへのパスが通ってないわけじゃないと思うんですが、原因はどこにあるのでしょうか?
84 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:38:03 ] CRTの設定(静的LIBかDLLか)が食い違っているとそんなエラーが出た気がする。
85 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:38:55 ] VC2008でビルドするためのパッチを当てる必要があるかもしれない気がする。
86 名前:83 mailto:sage [2008/05/21(水) 08:34:22 ] >>84 いろいろ変えてみたら、/MTでlibboost_serialization-vc80-mt-gd-1_34_1.libでのエラーが消えましたが、 a.objでのエラー7個が残ったままです。 >>85 すみません、詳しくお願いします。 環境はVC2008EEです(書き忘れてましたすみません)。
87 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 08:39:25 ] >>86 www.nabble.com/Preliminary-0.9.0-tarballs---VC++-2008-Express-td14142470.html
88 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:41:54 ] >>80 たしか設定済みmeadowに入ってたよね meadowとVisual Studio組み合わせられると便利なんだけどね
89 名前:83 mailto:sage [2008/05/21(水) 14:38:36 ] thx よく理解しないまま、 www.nabble.com/Re%3A-Preliminary-0.9.0-tarballs---VC%2B%2B-2008-Express-p14161224.html に書かれているコードをそれぞれのファイルの末尾に追加してみました。 そして、例のサンプルをビルドしたらエラーは、 C:\Library\boost_1_34_1\boost/config/compiler/visualc.hpp(180) : fatal error C1189: #error : "Compiler not supported or configured - please reconfigure" の1つになりました。 うーん、自分の知識が足りないか・・・。
90 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 16:51:34 ] >>89 おそらくVC8の設定でライブラリをビルドしてしまっているから VC9EEの設定で構築しなおす必要がある。 そのURLに載っているファイル4つを編集してbjam --toolset=msvc-9.0すればいい。 >ファイルの末尾に追加 差分の見方がわからないならdiff unifiedでぐぐれ つーか1_35_0使えばいいんじゃないのか?
91 名前:83 mailto:sage [2008/05/21(水) 21:10:39 ] >>90 1_35_0を入れたら、すんなりビルドできました。 最新版を確認するべきだったorz ありがとうございました。
92 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:55:48 ] BGLを使い始めたのですが、adjacency_listについて質問があります。 adjacent_vertices()は、adjacency_iteratorのpairを返すのですが、 このイテレータはSTLのRandomAccessIterator要件を満たすと ドキュメントに書いてあるのですが、以下のコードのように イテレータに加算すると、コンパイルが通りません。 これは、私のコードに問題があるのでしょうか? // VertexProp, EdgePropは適当に定義 typedef adjacency_list<setS, vecS, undirectedS, VertexProp, EdgeProp> Graph; Graph G; // Gに頂点やエッジを追加してグラフを作成 // vはGの1頂点で、隣接する頂点は複数個存在 tie(ai, ae) = adjacent_vertices(v, G); vertex(*(ai+1), G); // コンパイルエラー ちなみに、環境は以下の通りです。 boost: 1.34.1 コンパイラ: GCC 4.2.3
93 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:20:21 ] >このイテレータはSTLのRandomAccessIterator要件を満たす どこに書いてあります? OutEdgeList を setS で設定しているので, RandomAccessIterator の要件は満たさないと思いますよ.
94 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:06:16 ] >>93 www.boost.org/doc/libs/1_35_0/libs/graph/doc/adjacency_iterator.html のMEMBERS OFの項に、 The adjacency iterator type implements the member functions and operators required of the Random Access Iterator concept, except that the reference type is the same as the value_type so operator*() returns by-value. と記述があるのです。この説明はadjacency_iterator_generator::typeに ついてのものだと思っていたのですが、勘違いでしょうか? もう一度ドキュメントを読み返してみたら、MODEL OFの項に The adjacency iterator adaptor (the type adjacency_iterator_generator<...>::type) is a model of Multi-Pass Input Iterator . と記述されていました。これならば、operator+()が定義されていなくても 当然なのですが、ちょっと混乱しています。
95 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:13:04 ] >>94 adjacency iterator adaptor は out edge iterator を adapt して operator* の動作を edge の target を返す動作に書き換えるだけだと思います. なのでそのドキュメントは間違っているのではないかと思います. adjacency iterator adaptor はベースになっている out edge iterator が -Multi-Pass Input Iterator なら Multi-Pass Input Iterator -Forward Iterator なら Forward Iterator -(ry という具合に,単にベースの out edge iterator が どの concept の model かを投影するだけ,というのが正しいのではないかと.
96 名前:95 mailto:sage [2008/05/25(日) 10:14:21 ] >>94 それから adjacency_list の adjacency_iterator は 別に adjacency_iterator_adaptor で実装されているとは限らないので, 読むべきドキュメントは adjacency_iterator_adaptor のドキュメントではなくて あくまで adjacency_list のドキュメントかと思います. ただ, adjacency_list において adjacency_iterator と out_edge_iterator が どの iterator concept のモデルなのかの関係については, ↑の議論が踏襲されるのが自然とは思います. そして現に, Adjacency List のドキュメント www.boost.org/doc/libs/1_35_0/libs/graph/doc/adjacency_list.html では, "The adjacency_iterator models the same iterator concept as out_edge_iterator. " と 書いてあります.
97 名前:95 mailto:sage [2008/05/25(日) 10:20:15 ] なので結論としては, >>92 で adjacency_list の OutEdgeList テンプレートパラメタに setS を指定しているので, out_edge_iterator は Bidirectional Iterator concept のモデルになり, 従って adjacency_iterator も Bidirectional Iterator concept のモデルなので, >>92 のランダムアクセスではコンパイルが通らないのだと思います.
98 名前:92 mailto:sage [2008/05/25(日) 13:45:24 ] 詳細にわたって解説していただきありがとうございます。おっしゃる通り、 まずadjacency_listの解説をよく読むべきでした。 OutEdgeListにsetSを使っているのは、エッジの重複を許したくないと いうのが理由でした。グラフを読み込む際にエッジの重複をチェック するようにして、OutEdgeListにはRandomAccessIteratorにするように すればいいのかとも思いますが、そうするとエッジに対する各操作の 時間複雑度も変わってきてしまい、なかなか悩みどころですね。 よく考えてアルゴリズムを実装します。
99 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:38:48 ] なんか最近の.NETの中身見てると、Boostが隠ぺいされてそうな雰囲気がするな
100 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:44:17 ] 時代がBoostに追い付いてきたって事か
101 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:59:24 ] VC++2008EEでboostを使ってみようとboost_1_35_0_setup.exeを使ってインストールしました。 しかし実際に使ってみると「定義されていない識別子です。」と言うエラーが出てコンパイル出来ません。 パスが通っていないのかと思い、以下のように通してみましたが駄目でした。 インストールしたライブラリのタイプ(?)はマルチスレッドとマルチスレッドデバックのみです。 実行ファイルパス…C:\Program Files\boost\boost_1_35_0\bin インクルードファイル…C:\Program Files\boost\boost_1_35_0 ライブラリファイル…C:\Program Files\boost\boost_1_35_0\lib
102 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:02:07 ] 問題が起きる最小限のソースコードplz
103 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:30:24 ] エラーメッセージくらい貼ろうよ
104 名前:101 mailto:sage [2008/06/01(日) 23:00:03 ] すみません、boost::の付け忘れが原因でしたorz
105 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:07:46 ] 微妙にすれ違いだけど、Lokiってあんまり使われてないのかな。
106 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:33:20 ] 先駆的なライブラリで、(in "Modern C++ Design") あれの機能は他に取り込まれているから。
107 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:19:38 ] おお!そうなんだ。取り込まれ先はBoost?
108 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:35:06 ] 今日初めてBoostを導入してSVNからのビルドも一応出来たんだけど、 Bjam+MSVC9でビルドに数時間掛かる。 コマンドプロンプトを見ると、暫く止まって・急に動いての繰り返しでCPUメータを見ても殆ど動いてない。 CPUを100%使い切って構わないのでさっさとビルドを済ませるオプションはありませんか?
109 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:46:29 ] HDDがボトルネックという可能性は?
110 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:50:07 ] ボトルネックというより不調発生してトライ&エラー多発してるんでは?
111 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:37:51 ] HDDはAHCI接続のWD7500AAKSで、空き容量も110GB程度あります。 CPUはCore2Quad 3GHz、メモリは8GBです。 トライ&エラーというとコマンドプロンプトはWarningの嵐ですが、どこかミスしているのでしょうか。 ビルドオプションは bjam --toolset=msvc -a link=static,shared threading=multi release debug stage ビルド環境はVS2008EE SP1beta+Windows SDK 6.0.6001.18000.367です。 試しに今もう一度ビルドしていますが、20時32分に最初のライブラリが出来て 21時24分の時点で出来上がったライブラリ数は21、21時36分現在は49です。
112 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:49:14 ] >>111 監視ログにHDDの不調でてないか?
113 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:55:19 ] >>111 core2Quad 2,4G 2Gbyteだけど全然かからなかったなあ。 今bin.v2とstageタイムスタンプ見たら10分ぐらいしか幅がない。 CPUメータ上がらないのは変だね。ウイルス対策ソフトとか遅くないか?
114 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:57:24 ] Event Viewerを見てもそれらしきエラーはありません。 VS2008EEをGUIで立ち上げて他のプロジェクトをビルドするときは4コアを100%使い切って 数分で終わるのですが・・・。22時53分現在のビルド数は102個、大量のWarningはC4819(ソースの文字コード絡み?)です。 動作的にはC4819大量発生→20~30秒程沈黙の繰り返しで、HDDへのアクセスは常に続いていますが動作が散発的です。 セキュリティ関係はVista標準のFirewallのみでDefenderは切ってあります。 Boostの本題と関係無い話でスレを潰すのもあまり好ましくないと思いますので、 似た事例が無いかネット上を探してみます。
115 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:59:14 ] ビルド終わりました。 214ファイルで4時間15分・・・orz
116 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:04:34 ] SVNクライアントの設定が変なんじゃね 逐一リポジトリの最新版チェックしてるとか
117 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:50:21 ] set CL=/wd4819 環境変数CLに登録しておくと文字コードの警告表示されなくてすむよ
118 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:23:24 ] それより警告の原因をどうにかしたほうが良いんじゃないかな。 文字が化けてそれ以降のコードが滅茶苦茶になってた事があったから。
119 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:43:08 ] >>117 有難うございます。感謝感激です。 CLに/wd4819をセットしたらビルドが22分で終わりました。CPU使用率も30%前後まで上がりました。 大量のC4819が原因だったみたいです。 警告の原因は多分これでしょうか。 ネットで調べてみるとVisual StudioにはUTF-8Nを読めずC4819を誤検出するバグがあるらしく、 一部のファイルをUTF-8で保存し直せば黙るみたいです(まだ試していません)。 ttp://www.ccm.media.kyoto-u.ac.jp/~aoyama/index.php?Note%2FPrograming%2FWin32#u5a7e582
120 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:10:33 ] ビルド時の標準出力はファイルにリダイレクトしとかない?
121 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:26:23 ] grepしないと不安だよね。
122 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:51:24 ] >>119 それsvnで直接拾ってきたソース? もしそうならsvnで落とすときに言語設定が日本語になっていて日付が日本語表記になったせいだと思う
123 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:50:43 ] >>122 ソースはsvnからTortoiseSVNで落としてきて、tools/bjamフォルダ内のbuild_dist.batで組んだbjamで ビルドしてます。 言語環境は日本語Vista SP1に英語パックを入れた状態ですが、 日本語の文字化けの関係でシステムロケールは日本語にしています。 今見たら日付のフォーマットはLong dateが漢字を使っていたので英語にしました。 次回のビルドで検証してみます。
124 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:29:40 ] 日付と時刻のフォーマットを英語にしてソースを全て落とし直してからビルドしたところ、 /wd4819を設定しなくてもC4819の発生が激減しました。 ビルドも24分で完了しました。有難うございます。
125 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:59:02 ] 珍しく有益な情報だな やっぱり結論が書いてあるとよい 質問主も回答者も乙
126 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:02:28 ] そういえばドイツ人の書いたコードにドイツ語コメントあってコンパイルこけたことあったな
127 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 10:26:55 ] CじゃなくてPythonだが、スクリプトがエラーを吐くので調べてみたらauthor欄に"◆"が入ってた。 即座に空欄にした。 あの時ほど、死ね2chねらと思ったことはない。
128 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:28:28 ] boostは確かlexical_castとかのauthorがASCII以外の文字を使ってたような気がするぞ、
129 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:00:59 ] Boost.Threadに event timer に相当するものがないのはなぜ?
130 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:30:20 ] スレッドその物じゃない。
131 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:40:50 ] 力作を送れば採用してもらえるかも? そういえばboostに日本人作のものって入ってるの?
132 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:59:44 ] boost::conditionとかじゃないのか?
133 名前:デフォルトの名無しさん [2008/06/11(水) 16:03:34 ] >>132 は>>129 へのレス むしろ、Lockの名前や使い方が以前のバージョンと違うほうが問題
134 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:12:18 ] boost.rubyができれば強制的に入ることになるかも
135 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:26:59 ] >>131 boost::rangeの一部(MFCコンテナ用range)は日本人っぽい名前だったような。 あとこないだまでレビューしてたboost::eggも多分そう。
136 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:29:51 ] 「C++なぞ問題外」と書いたまつもと氏のRubyがboostに入るわけですか boostは心が広いなぁ、ホント素敵!
137 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:40:03 ] いいえ、RubyをベースにしたRuby++言語の処理系をboostベースで実装します
138 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:53:23 ] boost なぞ問題外.^^;;;
139 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:50:38 ] どうでも良いが個人的にまつもと氏に0xに改善されても尚C++が問題外かどうかを訊ねたい。
140 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:55:22 ] boostのtime関係って ってなんであんなにごちゃごちゃしてるの? boost::date_time boost::x_time boost::system_time
141 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:03:26 ] C++のtime関係がごちゃごちゃしてるからだよ。
142 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:29:45 ] SVNはasioが頻繁にアップデートされているな。 そのうちDirectSoundと同じ位気軽にASIOを扱える様になるんだろうか。
143 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:32:12 ] って、ソース見たらASIO関係無い・・・ 穴があったら入りたい
144 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:44:50 ] 全くのスレ違いだがPortAudioをオススメしておく
145 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:02:40 ] ありがとう
146 名前:デフォルトの名無しさん [2008/06/12(木) 06:56:32 ] >>139 jp.rubyist.net/magazine/?0018-Legwork こんな記事も書いてたぞ。
147 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:29:48 ] >>139 悪いものに何を付け足しても良くならないと考えるんじゃない?
148 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 13:59:50 ] Ruby より優れた言語はこの世に存在しない。
149 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:07:47 ] スクリプト言語と普通の(?)言語を一緒にされても・・・
150 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:46:02 ] Rubyでブートローダーとかデバイスドライバとかゲームとか作れるのかよ。
151 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:03:27 ] boostはpythonをサポートしてるから、boostスレでわめいてもRubyの布教に効果ないよ。
152 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:10:52 ] 空飛ぶパイソンvsキリスト
153 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:28:07 ] boostがrubyに対応させる? rubyがboostに対応させる?
154 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:38:59 ] まー、Java(笑)なんかよりは優秀だろ Rubyは
155 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:09:15 ] Java言語がいかに貧弱だろうとJVMが優秀だからJavaが有利
156 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:15:45 ] 最近じゃscalaとかあるしなぁ
157 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:19:12 ] Fortran「」←帰れと退けたくなる様な事言わせろ
158 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:25:49 ] >>157 あなた様がいなければ、CやC++といった素晴らしい言語は生まれませんでした
159 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:30:47 ] Boost.Malbolgeマダー?
160 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:32:13 ] Fortran「全部大文字で書いてくれ。俺の名前も」(1977)
161 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:38:24 ] Boost.XML Boost.SOAP Boost.CORBA 誰か作ってケロ
162 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 10:49:42 ] Boost.XMLはspiritにxml用の設定があったような?
163 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 12:20:14 ] xml_iarchive xml_oarchive
164 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:10:55 ] boost.rails しかもMPL使いまくりなのを
165 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:42:39 ] BOOST_AUTOは完全にC++に準拠していて尚且つ拡張の無い環境ではちゃんとコンパイルされるの?
166 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:51:58 ] それでできたら C++0x の auto の追加はいらないんじゃないか? でも auto ほど簡単な記述はできないか。
167 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:17:23 ] コンパイラのバグをうまくついて実装してたりするんじゃなかったっけ?
168 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:32:40 ] >BOOST_AUTOは完全なコンパイラの元では規定型の自動変数の宣言をラップしたものになる。 >規定型とはC言語時代のint
169 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 01:43:17 ] ここ5年はMicrosoftべったりのC++プログラミングの仕事だったんだけど標準に近いC++に戻ってきました。 特にテンプレート周りの環境変化は浦島状態なんですが、なにかお勧めの書籍ないですか? 細かいところはWebでしか追いかけられないのは承知ですが、まとまった内容は書籍の方が体系的に吸収できると思うので。 リハビリでModern C++ Designは読みましたが、今となってはあれも古い本だよねぇ。 LokiはBoostに吸収されてしまってるのかな?
170 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 05:15:28 ] 日本語のboost本は殆ど初心者向け。君が得られるものは何もない。 以上からお勧めの書籍は存在しないという結論に至る。 まあ導入くらいが目的なら、そこらに落ちてるboost本なら何でも。
171 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:00:15 ] boost本って稲葉の以外に出てるの?
172 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 09:08:23 ] >>171 Boostスレだけど、C++一般なんだよね? 「C++ Coding Standards−101のルール、ガイドライン、ベストプラクティス」 これが今のところ網羅的な本。初心者にもルール集としては便利だけど、 内容は中級以上じゃないと理解できない。 >>171 つ Beyond the C++ Standard Library: An Introduction to Boost つ The Boost Graph Library: User Guide and Reference Manual
173 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 09:47:36 ] 日本語は俺も稲葉著以外ないでしょ >>169 C++ Template Metaprogramming テンプレートっていうかBoostのTMPの本だがリハビリには丁度良いかと
174 名前:173 mailto:sage [2008/06/16(月) 09:50:28 ] 間違えた -日本語は俺も稲葉著以外ないでしょ +日本語は俺も稲葉著以外知らない 稲葉のも糞とは言わんが内容的に半端だからなぁ
175 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:50:03 ] みなさん、いろいろ書籍紹介どうもありがと。 とりあえず上がってるやつで日本語のものから優先で読んでみまつね。楽しみです。 ところですれ違いならごめんなさい。 実装環境ですが、WindowsとUnixの両方で動くようなプログラム作成を想定してて 現時点でなるべく新しいものをということで、WindowsはVC9(2008)、UnixはGCCの使用を考えてます。 ここでBoostは、1種類しか実装版がないようなので迷う必要がないですが STLは、STLPortがいいのでしょうか。それともVC・GCCにはじめから添付されてる(?)やつを使うのが普通ですか? たぶん性能と導入容易性とでみなさん天秤にかけておられるのと思いますが…。 LokiはTypelistなどMeta Programming関連が非常に興味深かったですが、 有用なものはBoostに包含されていて、とりあえずBoost使ってればOKな感じですか? ぐぐるとLoki自体はバグがそれなりにとかあったので、仕事には使いづらいのかなとも…。 ちょっと空気が読みきれてなくて、初歩的な質問すまそです。
176 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 12:01:27 ] 両方のOSで動かしたいだけなら、Cygwin入れてgcc使えばいいのに。
177 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:46:26 ] ・Lokiはもはや必要ない ・Boostの前にTR1 ・g++は最新のものを附属のlibstdc++と一緒に ・VC++は「必ず」最新のものを、必要になった時にSTLportと ・暇があればConceptGCCも試す
178 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 13:48:23 ] フェニックスシングルトンってLoki以外の他のそれ以外のBoost以外を除いたものの中にサポートされてたっけ?
179 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:20:27 ] Boost.Singleton って定期的にレビューに現れては reject されてるな
180 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:46:07 ] >>177 どうもありがとう!
181 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:12:12 ] boost.spiritって何がspiritなの? ふざけてるの?
182 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:52:15 ] すいません、boostを巻き込むとコンパイルにえらい時が掛かるんですが、こんなもんなの?
183 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:53:52 ] つプリコンパイルドヘッダ
184 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:56:38 ] >>182 俺も高性能なPCが欲しくて仕方がない。
185 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:15:09 ] >>182 boost使い始めるとコンパイルが見る見る遅くなるんで笑った。 テンプレートを実体化するものをヘッダーに置くとすさまじく遅くなるようだ。BOOST_CLASS_EXPORTとか遅いね。cppで実体化させる様にすると速くなる。
186 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:37:06 ] xpressiveを使ったときのコンパイルの遅さとmapファイルの肥大化には思わず笑ったな
187 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:41:37 ] VSの簡易リビルドが正確だったら、この機能を使ってコンパイル時間を短縮できるのに。
188 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:52:46 ] boost.pythonちょっと試そうと思ったんだけど 単なるhello, worldにも異常にコンパイル時間かかるから断念した これならSWIGやpyrexみたいなの使ったほうがいい ターンアラウンド遅すぎるしコンパイラのエラーメッセージは不可解だから、 学習やおためしには不向きだな 俺みたいなヘタレは、デバッガつかってもboostのコードは追いきれる自信ねえよ 難解なマクロとテンプレートのコンビ技の嵐だし
189 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:59:12 ] boost::ptr_vector が内部に持っているポインタ配列の先頭アドレスを取得する メソッドはあるでしょうか?
190 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:01:21 ] &V[0]とか?
191 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:32:13 ] ptr_vector の operator[] はポインタが参照するオブジェクトへの参照なので 配列のアドレス情報は含まれないはずです。
192 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:45:15 ] どういう間隔で配列が内部にあるかという情報はないの?
193 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:35:40 ] たぶん内部では boost::ptr_vector<T> pv の中には std::vector<T*> v のようなものが含まれていて template<class T> T& ptr_vector<T>::operator[]( size_type pos ) { return *v[pos]; } のような実装になっていると思う。 実際に欲しいアドレスは &v[0] だけど、&pv[0] とすると v[0] を得てしまう。
194 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:23:22 ] ptr_vectorの定義見ればいいんじゃね?
195 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:09:29 ] マクロばっかの追いにくいコードだったと思う
196 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:17:01 ] Boostに動的ライブラリのラッパーが追加される予定はありますか? GLibのGModuleみたいな。