[過去ログ]
Boost総合スレ part7 (989レス)
Boost総合スレ part7 http://pc12.5ch.net/test/read.cgi/tech/1232367742/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [] 2009/01/19(月) 21:22:22 過去スレ 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/ http://pc12.5ch.net/test/read.cgi/tech/1232367742/1
10: デフォルトの名無しさん [sage] 2009/01/22(木) 02:09:13 OS: Mac OS X 10.5.6 コンパイラ: gcc 4.0.1 boost: 1_37_0 この環境で,filesystemをソースからビルドしてパスを通して, g++ test.cpp -lboost_filesystem-gcc40-mt-1_37 みたいにコンパイルしようとすると,リンカがsymbol not foundとエラーをはきます. ubuntuでは問題ないためmac特有の問題だと思うのですが,原因,対策がお分かりの方いらっしゃいませんか? ちなみに,以下がコンパイル結果です. g++ test.cpp -lboost_filesystem-gcc40-mt-1_37 Undefined symbols: "boost::system::get_generic_category()", referenced from: __static_initialization_and_destruction_0(int, int)in ccCDIN5Z.o (長いので中略) libboost_filesystem-gcc40-mt-1_37.a(operations.o) __static_initialization_and_destruction_0(int, int)in libboost_filesystem-gcc40-mt-1_37.a(operations.o) ld: symbol(s) not found collect2: ld returned 1 exit status http://pc12.5ch.net/test/read.cgi/tech/1232367742/10
43: デフォルトの名無しさん [sage] 2009/01/30(金) 21:52:32 更新しました。 ttp://booster.x0.to/ 迷惑という意見が多い様でしたらサイトを閉じます。 http://pc12.5ch.net/test/read.cgi/tech/1232367742/43
81: デフォルトの名無しさん [sage] 2009/02/09(月) 22:14:02 spiritのast_treeの質問なんですが、 //型名など一部省略してます spirit::rule intp, expp; intp = leaf_node_d[int_p]; expp = int_p >> *(root_node_d[ch_p(L'+')] >> int_p); 上記のようなルールで、スキップパーサにblank_pを指定して 1 + 2 を構文解析させたとき、スキップ指定しているにもかかわらず、 2つ目の値のツリーの結果に、+から2までの間のスペースが' ''2'といった 感じに含まれてしまうのですが、leaf_node_dはそういう仕様なんでしょうか? (1つ目の値はスペースは含まれていない) リーフノードにスペースを含まないようにするには、スキップパーサを指定してても intp = no_node_d[*blank_p] >> leaf_node_d[int_p]; の様に、ルール側でもスペースを飛ばすしか方法がないのでしょうか? http://pc12.5ch.net/test/read.cgi/tech/1232367742/81
96: デフォルトの名無しさん [sage] 2009/02/14(土) 17:43:19 >>95 バグかも知れんね。 spirit/tree/common.hppの907行あたりを書き換えたら予想通りの結果になったよ。 if (hit) { std::advance(from, std::distance(from, scanner.first) - hit.length()); return result_t(hit.length(), factory_t::create_node(from, scanner.first, true)); } http://pc12.5ch.net/test/read.cgi/tech/1232367742/96
123: デフォルトの名無しさん [] 2009/02/21(土) 13:25:35 boost.graphについてですが、 検索を途中でキャンセルするのは例外を使用するしかない? 例:幅優先で検索し、目的のvertexが見つかったらそこで 検索をやめる。 boost.graph自体は基本的な例外安全は確保されているみたい なので例外の使用自体に問題はないとは思いますが・・・。 http://pc12.5ch.net/test/read.cgi/tech/1232367742/123
139: デフォルトの名無しさん [sage] 2009/02/22(日) 16:50:27 クラスのメンバ関数をパラメータ的に扱いたいんだけどどうすればいいかな。 こんな感じのことがしたいんだけど。 class A { public: void func_a1(); void func_a2(); }; class B { public: void func_b(); } template<???> void call_twice(???) { //オブジェクトとメンバ関数を引数にとってメンバ関数を2回呼ぶ } int main() { A a; B b; call_twice(a,func_a1); call_twice(a,func_a2); call_twice(b,func_b); } http://pc12.5ch.net/test/read.cgi/tech/1232367742/139
161: デフォルトの名無しさん [sage] 2009/02/24(火) 20:55:08 突然ですが、おまえらに問いたい! boostのイメージカラーは何色? http://pc12.5ch.net/test/read.cgi/tech/1232367742/161
238: デフォルトの名無しさん [] 2009/03/21(土) 12:46:15 http://d.hatena.ne.jp/electrolysis/20090220/1235059204 ここのUDP通信のソースで質問なんだけど、 send_to()ではIPとポート指定してるのに、 何故recv_from()では必要無いんですか? boost::asio::ip::udp::socket がIPとかを記録するんじゃないかと思ったんだけど、 リファレンスマニュアル見ても明確に書いてなかった http://pc12.5ch.net/test/read.cgi/tech/1232367742/238
262: デフォルトの名無しさん [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の場所「以外」入れられずコンパイルエラーになる。 何で? http://pc12.5ch.net/test/read.cgi/tech/1232367742/262
305: インドリ [] 2009/04/09(木) 10:05:55 http://blogs.wankuma.com/episteme/archive/2009/04/08/171040.aspx http://d.hatena.ne.jp/faith_and_brave/20090408 http://pc12.5ch.net/test/read.cgi/tech/1232367742/305
325: デフォルトの名無しさん [] 2009/04/12(日) 20:22:51 typedef boost::mpl::vector<int, char, std::string> vector; typedef boost::mpl::if_<boost::is_pod<boost::mpl::_>, boost::add_pointer<boost::mpl::_> ,boost::mpl::_> operate; typedef boost::mpl::transform<vector, operate>::type result; を、if_cに書き換えたんだけど・・・ typedef boost::mpl::vector<int, char, std::string> vector; typedef boost::mpl::if_c<boost::is_pod<boost::mpl::_>::type::value, boost::add_pointer<boost::mpl::_>::type, boost::mpl::_> operate; typedef boost::mpl::transform<vector, operate>::type result; typedef boost::mpl::transform・・・の行をコメントアウトすればコンパイルは通る。 めちゃくちゃってどこが? http://pc12.5ch.net/test/read.cgi/tech/1232367742/325
338: デフォルトの名無しさん [sage] 2009/04/18(土) 15:35:43 配列の要素数を変更する予定がなく、 しかしコンテナとしての扱いをしたい。 こんな場合にはboost::arrayがあるらしいですが、 これはstd::vectorよりも効率(速度やバイナリのサイズなど) が良いのでしょうか? std::vectorは標準ですからboost::arrayよりも 最適化の研究が(VC++やg++など有名どころで)なされているとか そういったことは普通ないですよね? http://pc12.5ch.net/test/read.cgi/tech/1232367742/338
392: デフォルトの名無しさん [sage] 2009/04/22(水) 20:53:38 >>391 auto_ptrで充分じゃね? http://pc12.5ch.net/test/read.cgi/tech/1232367742/392
402: デフォルトの名無しさん [sage] 2009/04/23(木) 00:40:38 >388 それはshared_ptrのオーナー次第。関数自体はオーナーじゃ無いことに注意する必要がある。 下記はかなり恣意的な例だけど、マルチスレッドプログラムだとすぐ嵌りそうですな。 struct A { A() : s(new std::string) {}; boost::shared_ptr<string> s; } void doom(std::auto_ptr<A> body, boost::shared_ptr<string>& str) { *str; // boo!! }; int main() { std::auto_ptr<A> a(new A); doom(a, a->s); } http://pc12.5ch.net/test/read.cgi/tech/1232367742/402
414: 382 [sage] 2009/04/23(木) 19:20:17 ふーむ。 試しに void foo(const boost::shared_ptr<MyClass> &p) { p->m_func(); } と void foo(boost::shared_ptr<MyClass> p) { p->m_func(); } とだけが異なった2種のソースをg++に渡して-O2でコンパイルさせてみたら、 後者の方が大きかったんだが。 とりあえずこのソースに限り、ファイルサイズはconst参照じゃない方が小さく済むみたい。 実行時間は・・・どうやって調べればいいの? http://pc12.5ch.net/test/read.cgi/tech/1232367742/414
471: デフォルトの名無しさん [sage] 2009/04/30(木) 23:11:00 C++ code - 32 lines - codepad http://codepad.org/6fhFzzye このコードにて、エラーになる原因が分かりません。 私の考えでは boost::lambda::bind(func_i, boost::lambda::protect(boost::lambda::bind(my_name, boost::lambda::_1))) でconst char* constを受け取りintを返す関数が得られるので、 それをlambda_test_funcの引数として渡せるのではないかと思ったのですが。 どこを修正すればよろしいでしょうか? http://pc12.5ch.net/test/read.cgi/tech/1232367742/471
472: デフォルトの名無しさん [sage] 2009/04/30(木) 23:17:13 >>471 lambda で生成される関数は、関数オブジェクトの一種。 関数へのポインタは C++ 言語上の「関数」を指すことができるけど、 言語上はクラスオブジェクトとなる関数オブジェクトを指すことはできない。 関数と関数オブジェクトを同等に扱うためのものとして boost::function がある。 - void lambda_test_func(int (*func_ptr)(const char* const char_ptr)) + void lambda_test_func(boost::function<int (const char*)> f) http://pc12.5ch.net/test/read.cgi/tech/1232367742/472
481: デフォルトの名無しさん [sage] 2009/05/03(日) 13:32:00 >>480 Boostって結構こまめに更新した方が良いの? 俺のBoostは1.37なんだけど。。。 http://pc12.5ch.net/test/read.cgi/tech/1232367742/481
518: デフォルトの名無しさん [sage] 2009/05/07(木) 21:19:56 >>517 1.37->1.39にした俺はspiritの名前空間が変わってて驚いた。 http://pc12.5ch.net/test/read.cgi/tech/1232367742/518
583: デフォルトの名無しさん [sage] 2009/05/16(土) 21:42:54 class rational : less_than_comparable < rational<IntType>, equality_comparable < rational<IntType>, less_than_comparable2 < rational<IntType>, IntType, equality_comparable2 < rational<IntType>, IntType, addable < rational<IntType>, subtractable < rational<IntType>, multipliable < rational<IntType>, dividable < rational<IntType>, addable2 < rational<IntType>, IntType, subtractable2 < rational<IntType>, IntType, subtractable2_left < rational<IntType>, IntType, multipliable2 < rational<IntType>, IntType, dividable2 < rational<IntType>, IntType, dividable2_left < rational<IntType>, IntType, incrementable < rational<IntType>, decrementable < rational<IntType> > > > > > > > > > > > > > > > > ってrationalの定義にあるんだが、これは何?? もしかしてこうするとEmpty Base Optimizationが働くとか!? http://pc12.5ch.net/test/read.cgi/tech/1232367742/583
655: デフォルトの名無しさん [sage] 2009/06/14(日) 15:17:09 >>654 C++は関数テンプレートの部分的特殊化ができないが、オーバーロードを使って同じような事ができる。 boost::type<Hoge>とかboost::type<Fuga>とか引数を変えてオーバーロードし、 Function(x, boost::type<Hoge>());みたいな感じで呼び出す。 boost::type<Hoge>はコンパイラの最適化で消えるため、実行時のコスト0で実現できる。 http://pc12.5ch.net/test/read.cgi/tech/1232367742/655
656: 654 [sage] 2009/06/14(日) 16:06:02 >>655 ふーむ。。。 template <typename TIPE> void Function(int x){〜}; とでも定義しておいて Function<TYPE>(x); と呼び出すんじゃだめなのかい? http://pc12.5ch.net/test/read.cgi/tech/1232367742/656
795: デフォルトの名無しさん [sage] 2009/07/30(木) 07:11:28 C/C++の欠陥はnamespaceが事実上無いことだな http://pc12.5ch.net/test/read.cgi/tech/1232367742/795
898: デフォルトの名無しさん [sage] 2009/08/18(火) 01:17:50 #include <boost/hoge.h> としている他は全て自作のライブラリMyLibがあります。 MyLibをソースコードの形で配布する場合、hoge.hの著作権表示をMyLibのソースコードに記す必要はありますでしょうか? http://pc12.5ch.net/test/read.cgi/tech/1232367742/898
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.050s