[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 03/13 15:15 / Filesize : 207 KB / Number-of Response : 692
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Boost総合スレ part7



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ライセンス
って事だよな?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<207KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef