1 名前:デフォルトの名無しさん [2009/01/19(月) 21:22:22 ] 過去スレ part 6 pc11.2ch.net/test/read.cgi/tech/1207749841/ part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/ part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/ part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/ part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/ part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/ ■関連サイト■ Boost C++ Libraries www.boost.org/ Boost 翻訳プロジェクト boost.cppll.jp/HEAD/ Let's Boost www.kmonos.net/alang/boost/ boost info shinh.skr.jp/boost/
201 名前:200 mailto:sage [2009/03/02(月) 03:22:29 ] あ、間違えた template<typename T> struct MyPolicy { MyPolicy& self() { return *(static_cast<T*>(this)); }; void extend_function() { // …… }; };
202 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 04:05:44 ] >>201 selfの戻り値もT&だろ。
203 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:50:38 ] 大元のclass MyClassの記述を変更せずに、という(多分)そもそもの目的に外れるのでは。 何か便利な文字列操作メソッドを追加したいとかで使うんだろうけど、 std::string弄るわけにはいかないし。
204 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:34:46 ] 思ったんだけどstructとclassの違いって何だろう?
205 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:37:18 ] >>204 継承とメソッドのデフォルトがpublicかprivateかの違いだけ
206 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:42:52 ] Boost.Iterator使ってイテレータ作るときのオブジェクトはstructにしないとコンパイルエラー出るな デフォルト継承の問題のようだが
207 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 20:36:56 ] >206 つ friend class boost::iterator_core_access;
208 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 21:25:08 ] ARM用にクロスコンパイルができない。bjamで正しく設定すればコンパイル通るのか
209 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:44:20 ] 更新しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Config] config: add cpp0x files not added after merge config: fix both BOOST_HAS_LONG_LONG and BOOST_NO_LONG_LONG getting defined at the same time for some compilers [Math] Add option to disable use of std::fpclassify. Fix for no long double support. [Bind] Make bind.hpp and mem_fn.hpp forward to bind/bind.hpp and bind/mem_fn.hpp. (Ref #2238) [Unordered] Add missing return for operator=. [Smart_ptr] Move smart_ptr into boost/smart_ptr/*.hpp (refs #2239). Fix enable_shared_from_this-related tickets in trunk. Refs #2126. Refs #2584. [Signals2] Merged Signals2 from sandbox to trunk. [Graph] Fix: Avoid compiler warning if BOOST_NO_HASH is already defined.
210 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:57:23 ] あのーーー >>209 にうpされてるのVC2005では使えないんですか?
211 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:47:58 ] VC2008SP1でビルドしておりますので、VC2005では恐らく使えないと思います。 次回からその旨分かる様に、ファイル名に"VC2008"を追加致します。
212 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:53:37 ] >>211 そうなんですか、同じコンパイラメーカーのでもバージョン違うと駄目なんですか,orz
213 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 04:54:22 ] >212 少し古いバージョンで良いならこっから落とせるよ。 2003, 2005, 2008 用をインストール時に選択可能。 ttp://www.boostpro.com/products/free
214 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 09:40:22 ] コンパイラによって関数の対応状況変わるから調べたほうがいいよ
215 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 14:57:29 ] 最近はヘッダファイルをジャンルごとにディレクトリ切るように移行中なのか。 あとspirit使うとclassicのヘッダファイル使えと警告出るんだけど、classicじゃないspiritの使い方って どっかに書いてあるんだろうか・・・(公式ドキュメントも前のまんまだった)
216 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:05:58 ] >>215 spiritはV2になるから準備じゃないか?今のマニュアルがclassicに相当するようだ。 俺も最近spirit始めたところで悩んだ。 classicヘッダは名前空間がclassicに変わってるから注意だ
217 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:47:14 ] すでに自己解決した問題なんだけど、ぐぐっても日本語の情報が見つからなかったので、垂れ流しておきます。 環境依存(MinGW)っぽい話で、ここに書くべきか分かりませんが。自分の環境は OS: Windows XP (Home Edition, SP2) コンパイラ: gcc version 3.4.5 (mingw-vista special r3) boost 1.38.0 <boost/date_time/filetime_functions.hpp> がインクルードされるときに以下の警告が出ます。 > (略)/boost/date_time/filetime_functions.hpp:101: warning: left shift count >= width of type この警告は、該当のファイルの99行目と100行目の UL を ULL に書き換えると出なくなります。 書き換え前 > const uint64_t c1 = 27111902UL; > const uint64_t c2 = 3577643008UL; 書き換え後 > const uint64_t c1 = 27111902ULL; > const uint64_t c2 = 3577643008ULL; こういう解決法でいいのか、よく分かりませんが。今のところ Boost Trac のTicket #2809で報告されています。
218 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:59:34 ] > const uint64_t c1 = UINT64_C(27111902); > const uint64_t c2 = UINT64_C(3577643008); じゃ駄目なの?
219 名前:217 mailto:sage [2009/03/13(金) 16:26:19 ] >>218 そっちのほうが良さそうですね。(そのマクロは初めて知りました) 私の環境では、マクロ __STDC_CONSTANT_MACROS を自分で定義しないとUINT64_Cが使えませんでしたが、 定義するとうまく行きました。後の人の参考までに。
220 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 17:54:45 ] 更新しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Signals2] some inspect cleanups (mostly getting rid of tabs). Finally fixed some odd test errors on msvc9. [Smart_ptr] De-optimize assignment into this_type(r).swap(*this) Attempt to fix como link failure. [Functional] Move hash_fwd into the hash subdirectory. Remove deprecated headers. [Math] Misc. small platform specific fixes and expected error rate adjustments. [Fusion] Protected unused_type by an ADL barrier [Numeric] added unit test for LU decomposition add new constructor from vector to permutation matrix [Serialization] checked in new type trait - is_virtual_base_of.hpp Try new version of is_virtual_base_of.hpp [Wave] Wave: now compiles even with BOOST_FILESYSTEM_NO_DEPRECATED defined [Typeof] BOOST_TYPEOF_NESTED_TYPEDEF now supports expressions containing "this" for VC compilers [Detail] Initial commit. [Config] Added configuration macros BOOST_NO_AUTO_DECLARATIONS and BOOST_NO_AUTO_MULTIDECLARATIONS. [Function] 60% speedup on a micro-benchmark that copies and calls such function objects repeatedly.
221 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:17:11 ] boost1.36.0を使っているのですが、ファイルの絶対パスから相対パスを取得する良い方法は何か無いでしょうか…?
222 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:29:11 ] あれ?relative_path()ってまさにそのためのメソッドじゃなかったっけ?
223 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:05:03 ] ublasにqr分解する関数ないですか? lu分解はあるようなんですけど
224 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:58:20 ] >>223 「ublas qr分解」で検索すると、boost.ublasで実装した例が見つかるくらいだから、 直接qr分解するような関数はないんじゃね?
225 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:45:04 ] pythonのc apiが変更になるみたいだけど boost.pythonは対応してくれるんだろうか 特に日本語文字列を渡せるかあたりが変わるとか
226 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:24:07 ] この機会にLuaとかSquirrelとかに移行してみるというのはどうだろう。 いやもちろん用途次第だけど。
227 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:46:02 ] v8でJavaScriptとか・・・ 試してみたらかなり楽に使えたんでびっくりした
228 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:49:16 ] >>226 Boost.Luaとか期待しています。
229 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:07:26 ] pythonってライブラリのサポート率が凄く高いんだよね。 だから簡単に他に移行するのは、結構難しいんじゃないかな。
230 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:20:09 ] じゃあ俺はBoost.AngelScriptを期待。
231 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 18:54:29 ] 更新しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Type_traits] Add is_virtual_base_of. Add extra tests for is_base_of to test virtual inheritance. [Math] Add instrumentation code and some FPU control options. Updated the sign functions to use Johan Rade's fp-utilities code. [Serialization] Use new is_virtual_base_of [Config] Revert 51733 - it broke the regression testing system [Proto] work around issue with <termios.h> #define'ing B0 add proto::noinvoke to block metafunction invocation in ObjectTransforms [Tuple] fixed tuples::length not having a specialization for const tuple<> and const null_type
232 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:16:11 ] 以下のコードでVC++2005だとエラーは出ませんがIntelC++11だと「オペランドの型に互換性がありません ("boost::foreach_detail_::rvalue_probe<const ListInt>" と "const ListInt")」というエラーが出ます。どうしたら回避できるんでしょうか? #include <boost/foreach.hpp> #include <list> typedef std::list<int> ListInt; int _tmain(int argc, _TCHAR* argv[]) { ListInt A; ListInt& B=A; const ListInt& C=A; BOOST_FOREACH(const int& i,B) { } BOOST_FOREACH(const int& i,C) //ここでエラー { } return 0; }
233 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 09:12:24 ] まったくの勘で物をいってすまないが、 BOOST_FOREACH(int const& i,C) とかでだめかな?
234 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 09:35:01 ] BOOST_FOREACH(const int& i,C) も BOOST_FOREACH(int const& i,C) も同じ意味
235 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 09:37:23 ] そもそもconst int&でなくintにしてみたらどうだろう。 それでだめならforeachの実装覗くしかないんじゃね。
236 名前:デフォルトの名無しさん [2009/03/21(土) 12:06:26 ] class step_iterator : public boost::iterator_facade<step_iterator,int , boost::bidirectional_traversal_tag> { public: explicit step_iterator(int v, int s = 1):value(v), step(s){} private: friend class boost::iterator_core_access; void increment() { value += step; } void decrement() { value -= step; } int& dereference() const { return value; } bool equal(const step_iterator& other) const { return value >= other.value; } int value; int step; };
237 名前:236 [2009/03/21(土) 12:07:13 ] >>236 int に対する iterator で increment でstepずつ増やす iterator を 作ってみてるのですが、dereference() の箇所で error C2440: 'return' : 'const int' から 'int &' に変換できません。 とエラーになってしまいます。 メンバーのvalueをintへのポインターにして、dereference()で*valueを 返す様にしたら期待した動作をしてくれます。 また、const_cast しても期待した動作になります・・・ なぜ、int では駄目なのでしょうか?
238 名前:デフォルトの名無しさん [2009/03/21(土) 12:46:15 ] d.hatena.ne.jp/electrolysis/20090220/1235059204 ここのUDP通信のソースで質問なんだけど、 send_to()ではIPとポート指定してるのに、 何故recv_from()では必要無いんですか? boost::asio::ip::udp::socket がIPとかを記録するんじゃないかと思ったんだけど、 リファレンスマニュアル見ても明確に書いてなかった
239 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:32:08 ] >>236 メンバ関数のconst外す or 戻り値にconst付ける >>238 郵便を送るには送り先住所が必要ですが、受け取るにはポストを設置しておけばいいだけです。 receive_fromに渡しているendpointは差出人の住所を受け取るためのバッファです。 ちなみにそのページの非同期コードは未定義だね。
240 名前:デフォルトの名無しさん [2009/03/21(土) 15:00:11 ] >>239 >>戻り値にconst付ける error C2440: 'return' : 'const int' から 'int &' に変換できません。 >>メンバ関数のconst外す error C2662: 'step_iterator::dereference' : 'const step_iterator' から 'step_iterator &' へ 'this' ポインタを変換できません。 iterator_core_access::dereference が static typename Facade::reference dereference(Facade const& f) { return f.dereference(); } だから const はずせないです。
241 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:04:38 ] >237 > int& dereference() const const メンバ関数なので this は const step_iterator*。 従って、メンバの value も const int になります。 これは変更不可能なので、変更可能な参照 int& として返すことができません。 value を int* にした場合は、int * const になり、ポインタ値としては const ですが、 指している int の値は変更可能なので int& にできます。 > public boost::iterator_facade<step_iterator,int , boost::bidirectional_traversal_tag> > int& dereference() const ではなくて > public boost::iterator_facade<step_iterator,const int , boost::bidirectional_traversal_tag> > const int& dereference() const でどうでしょう?
242 名前:デフォルトの名無しさん [2009/03/21(土) 15:18:52 ] >>241 うまくいきました。 dereference()して値を変えたい場合は、ポインターなどにしてやる必要があるんですね。 >const メンバ関数なので this は const step_iterator*。 >従って、メンバの value も const int になります。 >これは変更不可能なので、変更可能な参照 int& として返すことができません 調べてると、「mutableでないと駄目」とか書いてあったけど、↑のことだったのか・・・
243 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:58:49 ] >>238 recv_fromはbindでポートと結びついてるソケットで読み込んでるからでないの?
244 名前:238 [2009/03/21(土) 16:17:09 ] >>239 UDPでは(?)どのポートに来たメッセージも受信できちゃうってことですか? >>243 bind()ではポート番号とか渡してないみたい
245 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:27:28 ] >244 send_toの時にバインドされてる
246 名前:238 mailto:sage [2009/03/22(日) 08:53:20 ] >>245 やっぱそうなのか この辺で失礼します。ありがとう
247 名前:デフォルトの名無しさん [2009/03/22(日) 18:01:34 ] vc2008EE sp1 winxp boost1.38(boostpro)で int x = 1, y = 10; (boost::lambda::_1 + boost::lambda::protect(boost::lambda::_1 + 2))(x)(y); がコンパイル通らないんだけど、なんで? error C2664: 'boost::lambda::lambda_functor<T>::lambda_functor(const boost::lambda::lambda_functor<T> &)' : 1 番目の引数を 'const boost::lambda::lambda_functor<T>' から 'const boost::lambda::lambda_functor<T> &' に変換できません。
248 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:57:14 ] とりあえず解決法だけ (x)を(boost::cref(x))にする(refでもおk) gcc-4.4, boost trunkで動作確認できた
249 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:42:42 ] Boostライブラリって同じ機能・もしくはちょっと違う機能のついた別クラスが 多い. こういうとこ改善しないのかな?
250 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:59:52 ] >>249 具体的にどれのこと?全部挙げなくて良いからさ。 あと、改善しないのか気になるんなら、直接提案してみれば良いよ。
251 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:22:20 ] 249じゃないけど、bindとlambda::bindとかtupleとfusionとか これまで書かれたコードがあるから一本化できないんだろ どっちかが非推奨になることはあるかもしれんが boostのライブラリは便利だけど、組み合わせようとするとあれ?ってなる感じがする。 lambdaはresult_ofに対応したんだっけ?
252 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:33:56 ] boost/functionを使うときにはたいていboost/bindも使うとか 文字列処理クラスが機能かぶってるとかのことを言ってるのか? おれは↑と他ちょっとしかboostしないから知らないけどなんかあんの?
253 名前:247 [2009/03/22(日) 22:46:02 ] boost::protect の一番わかりやすい(シンプルな) サンプルコード教えてください。 (boost::protectの有無で結果変わるやつ)
254 名前:232 mailto:sage [2009/03/24(火) 22:59:56 ] >>233-235 直らなかったので、ソースを調べました。 コンパイラのバージョンチェックがまずかったようです。 boost/foreach.hppの頭のほうの行の || BOOST_WORKAROUND(BOOST_INTEL_WIN, <= 810) を、以下のように変えたらコンパイラが通りました。 || BOOST_WORKAROUND(BOOST_INTEL_WIN, <= 1100) とりあえず、これで様子見です。
255 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 22:43:50 ] 更新しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Fusion] added default implementation for iterator_facade [Math] Fix bug in cyl_bessel_i that hits when v=0.5 and x is small. [Archive] Throw new exception when program class version is less than file class version. [Serialization] moved to type traits [Smart_ptr] Move enable_shared_from_this2.hpp to boost/smart_ptr. [Timer] Fix spelling boo boo (Shawn Roe) [Regex] Patch for ICU on AIX. [Type_traits] Added has_new_operator from Robert Ramey. [Filesystem] System, Filesystem: remove boost/detail/test_framework.hpp; use boost/detail/lightweight_test.hpp instead (Thanks to Peter Dimov for pointing this out) [Units] Fix return type for division by a constant [Tr1] shared_count.hpp has moved. [Interprocess] Changes for Boost.1.39 [Intrusive] Changes for Boost.1.39 [Bind] Add ref_compare for weak_ptr. Refs #2849.
256 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 16:52:31 ] Spirit使っている人に聞きたいです。 eps_pを使うと括弧を減らせるみたいらしいですが、 俺的にはeps_pを使うよか括弧を使う方が分かりやすいと思うんです。 みさなんはどう思いますか?
257 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 19:26:02 ] ウロ覚えだが括弧の中に括弧がネストしてる場合もちゃんと処理してくれるんじゃなかったっけ
258 名前:256 mailto:sage [2009/03/28(土) 19:31:45 ] >>257 そー言われれば、括弧のネストを解消して括弧の数を減らせるな。 …あと、見やすいかどうかは主観に寄るよなやっぱ。
259 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 01:38:49 ] Spiritに関して パーザーPARがあったとして、PARにマッチしないって言うのを表すにはどう書けばいい? 具体的には boost::spirit::sign_p にマッチしないって言うのを表したかったのだが、 ~boost::spirit::sign_p とやったらoperator~はsign_pには定義されていないよっていうエラーがでるんだけど・・・。
260 名前:259 mailto:sage [2009/03/29(日) 01:54:34 ] boost::spirit::anychar_p-boost::spirit::sign_p で良かったか。 事故解決した気がするが、これで間違っていたら教えてくれ。
261 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:41:25 ] >>260 手っ取り早い方法だとそれで良いと思う。 ただ、anychar_p sign_pの両方が評価されるので、 -を使った方法は多用しまくると効率悪いかもね。 <この例なら気にならないだろうけど
262 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:41:39 ] Spiritにて expr= ( +(boost::spirit::digit_p)//[&the_func] >> *( (boost::spirit::ch_p('!'))//[&the_func] ) )//[&the_func] この3カ所にセマンティックアクション void the_func(const char* const, const char* const) を入れたかった。しかし実際やってみると 3つ目のthe_funcの場所「以外」入れられずコンパイルエラーになる。 何で?
263 名前:=260=259 mailto:sage [2009/03/29(日) 14:42:35 ] >>261 ありがとう。初めて使ってみて今3日目。感動を禁じ得ない。
264 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:54:09 ] >>262 間違ってるかもしれないが、デフォルト定義パーサ(の一部?)には、 セマンティックアクションを組み込めなかったかも? いったん別なルールに入れれば良かったんじゃなかったっけ? rule a,b; a = digit_p; b = ch_p; expr = +a[&fnc] >> *b[&fnc] 〜 みたいに。
265 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:55:22 ] >>264 やってみる!
266 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:55:42 ] あるいはこうだったかも a = digit_p[&fnc]; b = ch_p[&fnc];
267 名前:262 mailto:sage [2009/03/29(日) 15:05:31 ] boost::spirit::rule<scannerT> expr, num_p, exclamation_mark_p; num_p=boost::spirit::digit_p; exclamation_mark_p=boost::spirit::ch_p('!'); expr = ( +num_p[&the_func] >> *( exclamation_mark_p[&the_func] ) ) ; これで出来た!動作も今のところ大丈夫っぽい。 ありがとう。 ちなみに a = digit_p[&fnc]; b = ch_p[&fnc]; は死にました。 やっぱりおっしゃるとおり、プリミティブパーサには直接セマンティックアクションを入れられない場合があるみたい。
268 名前:262 mailto:sage [2009/03/29(日) 15:08:45 ] ただし int_p[&PUSH] とかやる時は直接プリミティブパーサにセマンティックアクションを付けてもおkなのか。 むむぅ。 初めて知った。
269 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:09:18 ] アクション関数のシグネチャが違うんじゃないの。
270 名前:268 mailto:sage [2009/03/29(日) 16:55:52 ] >>269 ぽいね。 int1つを受け取るセマンティックアクション用の関数とint_pならおkなのか。 どうも。
271 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:11:05 ] 文字列の前後の空白を除去する関数が欲しくてBoost.Xpressiveを使って自作しようと思った。 ところがよく見ると<boost/algorithm/string>にtrimという目当ての関数(?)があるようで、 それを使おうかなとも思っている。 でも<boost/algorithm/string>をインクルードするとそれ全体の分で結構バイナリってでかくなっちゃう? それともtrimしか使わないならtrimに相当する分だけがバイナリになって 他の<boost/algorithm/string>の部分は付いてこない? Boost.Xpressiveは別の用件で使っているから抵抗ないんだが、 <boost/algorithm/string>はこのtrim以外で使う予定がないもんだから、 ちょっと心配なんだけど、教えてくださいませんか?
272 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:12:54 ] マップファイル出力付きでコンパイルして確認してみればよいじゃまいか
273 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:28:54 ] 悩まず即自作してたら、30分で解決したんじゃないか?w
274 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:35:53 ] じゃ<boost/algorithm/string/trim.hpp>
275 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:53:41 ] みんなありがとう。 やってみる。
276 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:43:22 ] boost/algorithm/string/trim.hpp だけincludeすれば、少しはマシかも
277 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:08:33 ] >>276 >>274
278 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 19:33:45 ] Boost.Spiritを使った適当なプログラムを書いてみた。 そのプログラムは #include <boost/spirit/core.hpp> となっているのだが、これをより広く #include <boost/spirit.hpp> にしたプログラムを作ってみると、 (他は全く変更していないのに)ファイルサイズが違うのだが、なんで? 環境は Windows XP, g++でコンパイルオプションは-O2 なんだが、実際に使われていない関数やクラスもリンクされてバイナリになっているってこと?
279 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:43:32 ] グローバル変数の初期化関連じゃないか。
280 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:21:35 ] 更新しました。 今週の更新の大半はドキュメントとGraphのアップデートでした。 ttp://booster.x0.to/ 以下更新内容の一部 [Flyweight] made Boost.Interprocess names shorter to accommodate some filesystems [Type_traits] Add missing #includes. [Graph] Renamed some functions to work better on some compilers First batch of merges from Parallel BGL Merged more changes from Parallel BGL [Spirit] Fixes to exception messages. Fixes to some exception messages. [Numeric] storage.hpp: fix #2891, now check new size instead of old one [Proto] fix proto::lazy
281 名前:278 mailto:sage [2009/04/04(土) 11:12:22 ] >>279 あーなるほど。
282 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 11:15:31 ] >>280 利用させてもらっています いつも乙です
283 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 11:42:04 ] >>280 お疲れ様です。
284 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 12:46:44 ] Boost.Spiritの構文木作成について学べるサイトがあったら教えてください。 日本語がいいです。
285 名前:284 mailto:sage [2009/04/04(土) 12:51:11 ] ちなみに俺がググったところ パースツリーを作る homepage3.nifty.com/kaku-chan/boost/spirit/chapter_005.html がヒットしているんですが、もしみなさんのオススメがあれば是非知りたいです。
286 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:00:21 ] Windows XP SP2, MinGW(g++ 3.4.5)をインストールして使っています。 コマンドプロンプトで g++ something.cpp -I "C:\BoostC++Libraries" として使っていますが、毎回インクルードパスを入力するのが面倒で、 環境変数で省略出来るのではないかと思い調べてみました。 その結果、 CPLUS_INCLUDE_PATHにboostのパス(私の場合C:\BoostC++Libraries) を設定すれば大丈夫という記述を見つけたのですが、 実際に設定してみてもうまくいきません。 (インクルードパスを省略してg++ something.cppだけでコンパイルできません。) 近い環境の方で、出来ている方はいらっしゃいませんか?
287 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:04:10 ] つ[makefile]
288 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:07:27 ] 自分もその環境変数でうまくいかなかったから、.bashrcで alias g++='g++ -I /cygrive/.../boost_1_38_0' のようにしている。お察しの通り、Cygwinだけど。
289 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:16:54 ] 俺は>>286 と同じ環境で、コマンドプロンプトでCPLUS_INCLUDE_PATHを設定すると ちゃんと読みに行ってくれるよ。 まあ、普段はmsys使ってるけど。
290 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:20:09 ] >>287-289 みんなありがとう。 やっぱみなさん色々やってんのね。
291 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:25:51 ] 結果、GUIでなく、 >>289 さん方式(コマンドプロンプトからCPLUS_INCLUDE_PATHを設定) でインクルードパスの指定が不要になりました。 愛してる。
292 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:37:11 ] たぶんね、マイコンプータのプロパテから環境変数を設定したあと再起動してなかったでしょ
293 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 19:05:13 ] >>292 それもしてなかったです。 設定→ダメじゃん→設定を削除して元に戻す しかしてなかったです。 それも試してみます。
294 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 19:58:48 ] 大元の環境変数は再起動しないと反映されないよ Windowsはね
295 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:03:06 ] >>294 Linuxなら再起動しなくても反映されますか?
296 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:14:28 ] 環境変数を設定したシェルから起動したシェルでは大丈夫。
297 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:48:55 ] 環境変数で悩める286が羨ましいぜ 二日掛りでmingw + bjamの罠から未だ抜け出せない。
298 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:55:33 ] bjamってmingwには未対応ってことになってるよね、確か。 俺はcmd.exeからbjamを使ってコンパイルして、使うときはmsysからmingwを使ってる。 これで Program Options と Thread を使ってるが、一応うまく動いてるぞ。
299 名前:デフォルトの名無しさん [2009/04/06(月) 15:19:32 ] 俺もmingwだけど、includeファイルは標準のところにぶち込んだ
300 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:48:14 ] 何かWikiに「gzipはGPL」って書いてるんだが、これは ・RFC1952で記述されてるアルゴリズムを元に作ったgzipという圧縮ツールがGPL ・boostに含まれているgzipライブラリはboostライセンス って事だよな?