1 名前:BOOTS [2007/10/18(木) 08:09:35 ] 語って.はぁと part boost::mpl::int_<5> 過去スレ 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/
41 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:28:41 ] VTUNEはAMDのCPUでは使えないのだよ…
42 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:24:14 ] CodeAnalystでいいじゃん
43 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:05:23 ] bjam ver3.1.15-1経由でcl.exeのメッセージやワイド文字をコンソールに出力するアプリケーションでワイド文字を表示したら悉く???????と表示され、 いかにもロケール設定できてませんよって事態になります。 bjamを使わずに直接cl.exeやワイド文字を使うアプリを起動して表示すればちゃんと表示されのにも関わらずです。 以前のバージョンなら確かにcmd.exe以外のターミナルだろうが、cygwinのbashやzsh上だろうがNTemacsの中のシェルだろうが、 ちゃんと表示されてたんですが、皆様の環境ではどうでしょう?
44 名前:43 mailto:sage [2007/11/11(日) 18:53:03 ] もろbjamの問題でした 適当なリビジョンのやつを落としてビルドしたバージョン3.1.14だとこの件に関しては正常に動作しました
45 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 03:50:17 ] boost 1331ではboot.pythonでnumpy使えないないのかね コンパイルは通るけど実行時にエラーでる
46 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 02:02:53 ] 最新のstableの1.34.1もしくはSVN Headで試してみればどうでしょうか?
47 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:41:47 ] centosなのでpythonを2.4から2.5にあげるとシステムに不具合でるのです どうやら boost1.33.1 python2.4の組み合わせでしか動かないみたいです
48 名前:デフォルトの名無しさん [2007/11/21(水) 19:49:45 ] boost::formatの逆のような処理を行うライブラリはありますか? try { unsigned short us = 0; int i = 0; (format("%1%, %2%") %us %i) = "0xABCD, -1234"; BOOST_CHECK_EQUAL(0xABCD, us); BOOST_CHECK_EQUAL(-1234, i); } catch(const format_error& e) { } 見たいな感じが理想です
49 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 19:50:48 ] それは正規表現の仕事だな 強いて挙げるならregexとかxpressiveか
50 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 19:52:29 ] >>48 要するにscanf()のboost版が欲しいわけだ 一言で言えば、無いよ
51 名前:48 mailto:sage [2007/11/21(水) 20:07:58 ] 了解しますた xpressive->lexical_cast戦法でいきます
52 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 20:10:20 ] なんでlexical_castなんぞ使うんだ?
53 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 21:08:07 ] intとかに変換したいからでしょ? 悪かないと思うが。
54 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:15:23 ] xpressiveを使うならそこはSemantic Actionだろ。 ちょうどいいサンプルもあることだし。 ttp://boost-sandbox.sourceforge.net/libs/xpressive/doc/html/boost_xpressive/user_s_guide/semantic_actions_and_user_defined_assertions.html
55 名前:48 mailto:sage [2007/11/22(木) 16:09:45 ] >>54 こんなのあったのかー すごい・・・ でもasのなかでも呼ばれてるlexical_castが16進数とかを良きに計らってくれなくて俺涙目w
56 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 19:04:45 ] >>55 spirit と bind に触発されて昔作ったもの。 sprintf や sscanf みたいなことを spirit っぽく静的に記述する。 string strA, strB; sprint( strA, "1 " % !_x[6] % "/" % _s, 10, "aaaa" ); sprint( strB, "2 " % (!_0x[6]) % "/" %_s, 10, "aaaa" ); cout << strA << endl; // 1 0xa/aaaa cout << strB << endl; // 2 0x000a/aaaa int xA, xB; string yA, yB; sscan( strA, "1 " % _ws % _x % "/" % _s, xA, yA ); sscan( strB, "2 " % _x % "/" % _s[3], xB, yB ); print( cout, "xA = " % _d % "\nyA = " % _s % _endl, xA, yA ); print( cout, "xB = " % _d % "\nyB = " % _s % _endl, xB, yB ); // xA = 10 // yA = aaaa // xB = 10 // yB = aaa kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5317.zip
57 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:37:26 ] notizキターw
58 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:48:11 ] notizと聞くと某ゴーストとか火狐のテーマとかを思い出す俺は異端かな
59 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:49:16 ] tupleをsinkやsourceにしてそれに対するfilterにしたらとても面白いかも・・・ でも今の僕にはその技術はありませんでしたというオチ
60 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:17:00 ] MFCやCLIを基本として、BoostだのLokiだのSTLだのATLだのWTLだのを 覚えなきゃならないなんて、C++は大変だな。 おまけにXMLやるならXML用のライブラリ、SQLやるならSQL用のライブラリと キリがない。 C++もういいよ。終了。
61 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:19:41 ] >>60 頭おかしいのかお前。 例えば、何の言語を使えば MLやるのにXML用のライブラリを覚えなくていいのか SQLやるのにSQL用のライブラリを覚えなくていいのか言ってみろ。
62 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:19:58 ] そうだね、プロテインだね。
63 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:21:20 ] そこはだがそれがいいと返すべき
64 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:23:27 ] 全部言語仕様に入れたプログラミング言語作ろうぜ。 俺は見てるから。
65 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:23:54 ] Java厨乙が適切だと思う。そういう俺はD言語厨。
66 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:25:38 ] どんなにいいライブラリがあっても使いこなせない低脳さん乙と言ってあげるべき
67 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:26:08 ] MFCが基本と言ってる時点で(ry
68 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:29:11 ] 大体基本って何だよ。 MFCはライブラリで、CLIは実行環境ジャン。
69 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:48:17 ] 最近プロテインをプロティン(どちらかというとプロチン)と発音しているCMを見たんだけどこれって正しい?
70 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 14:48:25 ] 俺は凡人だから、ちょっと頑張れば>>60 が挙げたようなものは片っ端から使えるけど、 並外れて悪い頭を持って生まれてきた人には厳しいかもね。
71 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:17:29 ] ここはいい釣堀ですね
72 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:23:36 ] ↑はいはーい、いつもの「カレ」のご登場でーす。パチパチ
73 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:35:05 ] 恥かいた時のために、いつでも釣り竿を用意してます 「あ、ヤバ!」と思った時、どれだけ自然に「さっきから竿を構えていた」かのように振る舞えるかがコツ
74 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 03:07:55 ] >>73 後から釣りでしたって言った奴の負けだと思いますぅ〜♪
75 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 04:46:35 ] 相手して付き合ってしまってる時点で負けだろ わざわざ同じレベルに堕ちる必要はあるまいて
76 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 15:52:12 ] >>75 おまえもな
77 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:16:34 ] おまえら、しょうがないなぁ unit nYakuso = 7; //薬草1個の値段 unit nFukuro[10]; //持ち物を入れる袋 wstring strIppai(L"持ち物が\nいっぱいです><") ; という文字列を以下のように変換するプログラムを30秒以内で記述できるか? unit、nYakuso、=、7、;、unit、nFukuro、[、10、]、;、wstring、strIppai、 (、L、"、持ち物が\nいっぱいです><、"、)、;
78 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:39:14 ] 変数名の前に n とか str とか、自分は低脳ですって言ってるようなもんですよ
79 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:43:33 ] こういうのはperlとか使った方がよさそう
80 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:55:10 ] >>77 //以下の文字列を無視するのと クォーテーション文字で囲まれた文字列内で エスケープ文字を無視するのは標準Boostでは無理。
81 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:02:10 ] spiritなら頑張れるかも 30秒以内は無理そうだが xpressiveは知らない
82 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:26:59 ] ノcomment_p( )
83 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:04:27 ] >>82 だな
84 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 05:43:59 ] 30秒以内に記述してもコンパイルに30秒以上かかるんだよ・・・・
85 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:51:55 ] boost.pythonでboostとpythonのバージョン違いに悩まされるより swigの方がいいと思った swigと比べたboost.pythonの利点って何?
86 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:25:04 ] python コード呼び出すのがらくなことじゃねーの?
87 名前:デフォルトの名無しさん [2007/11/26(月) 18:27:45 ] cmathの関数群とbindについて教えてください。 double x = 25; cout << bind(sqrt, _1)(x) << endl; このコードは、VC++2005では実行できるのですが、 g++ 4.0.0 (boost 1.34) だと以下のように明示的に キャストしないとコンパイルできません。 cout << bind(static_cast<double (*)double>(sqrt), _1)(x) << endl; これはg++用boostライブラリ固有の制限なんでしょうか?
88 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:44:44 ] std::cout << boost::bind<double>(&std::sqrt,_1)(x) << std::endl; bindがオーバーロード解決に失敗するときは戻り値の型をテンプレート引数で明示的に指定してやればいいらしいです
89 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:48:02 ] あごめん、やっぱ無理っぽい
90 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:49:07 ] >>87 もしかしたら、VCにはcmathのfloat版関数の宣言がないのではないか?
91 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:30:10 ] >>88 >>89 >>90 レスありがとうございます。 やはり複数の関数定義があるからなんでしょうかね。 実行はできるので、実装を受け入れることにします。
92 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:39:40 ] template特殊化じゃなくて、overloadだとね。 template<typename _Tp> inline _Tp mysqrt(_Tp __x) { return sqrt(__x); } なら、 cout << bind(mysqrt<double>, _1)(x) << endl; できるけど。doubleで特殊化されてようとされてなかろうと。
93 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 01:46:48 ] ただオーバーロードの名前解決ルールに従うとビッチリdoubleを 指定してるわけだからdouble sqrt(double)を特定できる はずなんですけどね。コンパイルエラーにもambiguousとは出ていない ようですし。
94 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 23:07:10 ] >93 double を指定しているのは戻り値の型であって、sqrt() の引数の型には寄与してないから特定できないんじゃない? x の型は bind の解釈には無関係だよね?
95 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:58:51 ] >>94 _1 は確か引数じゃないかな?戻り値ではないと思ったけど。
96 名前:デフォルトの名無しさん [2007/11/29(木) 03:42:26 ] xpressiveを勉強しているのですがa|b(aまたはb)がうまく動きません using namespace boost::xpressive; sregex tok = as_xpr("hoge") >> (("!">>~before(eos)) | ("!!">>~before(eos)) | eos); smatch m; const std::string addr("hoge!hoge!!hoge!"); std::string::const_iterator it = addr.begin(), end = addr.end(); for( ; regex_search(it, end, m, tok, regex_constants::match_continuous) ; it = m[0].second ) { std::cout << m[0] << std::endl; } このコードで hoge! hoge!! hoge! と出力されると思ったのですが hoge! hoge! で終わってしまいます
97 名前:96 [2007/11/29(木) 03:46:41 ] 申し訳ございません 間違えました 検証に使った文字列は const std::string addr("hoge!hoge!!hoge"); です
98 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:35:19 ] sregex tok = as_xpr("hoge") >> (("!!">>~before(eos)) | ("!">>~before(eos)) | eos); だろ。普通は
99 名前:デフォルトの名無しさん [2007/11/29(木) 12:35:47 ] ファンクたを合成したいんだけど、 compose_f_gx_hx とかって Visual C++ 2005 の STL には入ってないの? ファンクタの合成って boost::compose か何かが必須? なんか俺勘違いしてるのかな。
100 名前:99 [2007/11/29(木) 12:38:12 ] あれ?Boost.Compose って deprecated ?
101 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:40:01 ] lambda::bindを使って bind(&f, bind(&g, _1)) な風に でも>>13 のように呼び出し規約が__stdcallの関数については使えないようだ mlには使えるって書いてあるんだけどねぇ・・・誰か使えた人いないのかなぁ
102 名前:99 [2007/11/29(木) 12:48:31 ] #include <boost/lambda/bind.hpp> boost::lambda::bind #include <boost/bind.hpp> boost::bind どちらを使うべきなのでしょうか?
103 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:53:19 ] 合成関数目的ならどっちでもいけるけど __stdcallのものにでも使えるという点でboost::bindかな・・・
104 名前:99 [2007/11/29(木) 12:56:54 ] THX. ところで、ファンクタの合成って標準のSTLには入ってないよね? SGIのだけに入ってるとか、そういうことあるのかな? 少なくとも Visual C++ だと compose_f_gx_hx などはありませんでした。 boost::bind のほうがもっと柔軟だから compose_f_gx_hx いらないけど。
105 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:56:21 ] >104 標準化される前の SGI STL には compose1, compose2 があった。っていうか今もある。 現行の標準規格には入っていない。 compose_f_gx_hx は Boost.Compose での名前。 C++0x では Bind が標準に入るので今後は bind 使えになると思われ。
106 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:01:44 ] Scott Meyers' Effective C++: TR1 Information www.aristeia.com/EC3E/TR1_info_frames.html 266 tr1::bind Function Object Binders n1455
107 名前:99 [2007/11/30(金) 15:00:08 ] _1 とか _2 って boost::lambda 名前空間以下にしかないよね? boost::bind も併用しているんだけど、 そうすると ambiguous って言われる?
108 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 15:12:46 ] 言われる
109 名前:99 mailto:sage [2007/11/30(金) 15:15:54 ] だは〜 無名名前空間の下に見えてる _1 はどっから来たものか・・・ #include <boost/bind.hpp> だろうなぁ。 ::_1 って指定してやらないとダメみたい。
110 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:50:17 ] Visual C++ 2008 Express Edition だとさらに 果敢に IntelliSense が攻めてくれるね. だけどまた boost をリビルドしなきゃならんのか… 今からやろうと思うんだけど, svn trunk から とってきたのを直接ビルドしてみようと思う.無謀?
111 名前:110 mailto:sage [2007/12/02(日) 18:58:00 ] svn.boost.org/svn/boost/trunk/boost/config/auto_link.hpp #elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500) # define BOOST_LIB_TOOLSET "vc90" ってことは,すでに trunk では対応しているのか. 退行テストも通ってるのかな.しかし svn から export して持ってきたものをどうやってビルドするのかわからん・・
112 名前:110 mailto:sage [2007/12/02(日) 19:24:56 ] bjam ビルド中。 あっさり toolset 名として vc9 が検出されたみたい。 つーか、bjam をビルドしようとして build_dist.bat を 実行したらすでに本体のビルドまで勝手にやってくれているのだが・・・ 以前ビルドしたときとは大違いに楽になってる気がする。
113 名前:110のチラシの裏 mailto:sage [2007/12/02(日) 19:31:29 ] ごめん、ウソ。いま改めて bjam.exe --build-dir=builddir --toolset=msvc-vc9express stage やってます。Express Edition は固有の toolset 名を持ってるのか? もしかして 64 ビット版のライブラリをビルドするか否かを決定してる?
114 名前:110のチラシの裏 [2007/12/02(日) 19:37:30 ] しかし Graph とか正規表現ライブラリの Unicode サポートとか 使おうと思ったら expat や icu4c も vc9 でビルドしなおさなきゃ らんのかなぁ。 って、記憶をたどってみると、両ライブラリとも単独で使った ことがあるんだけど、vc7 と vc8 で同じバイナリをリンクしてた きがするのだが・・・ boost はなんでリビルドしなきゃならないの? とはいえ、 vc8 用にビルドした boost を vc9 でビルドしてる アプリケーションからリンクするとリンカが怒るので仕方ない。
115 名前:110のチラシの裏 mailto:sage [2007/12/02(日) 19:59:26 ] Visual C++ 2008 Express Edition で 1.35 ビルド終了。 failed 2 って出たけど、どこで失敗したのかわからん。 bjam はログを残してくれないのか?
116 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 20:10:38 ] (bjam ほにゃらら 2> err.txt) > log.txt
117 名前:110のチラシの裏 mailto:sage [2007/12/02(日) 20:17:39 ] え、Windows の cmd.exe でも stderr のリダイレクトできたのか。 bash ばっかりだからしらんかった。
118 名前:110 mailto:sage [2007/12/03(月) 00:12:14 ] bjam で --toolset=msvc-vc90 にしてるのに libboost_graph-vc-mt-gd-1_35.lib みたいにライブラリファイルの名前中のツールセット名が -vc- になるのは、なぜ〜〜〜? 自分で変更するのタルい。
119 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:34:06 ] Boost.BuildがV2になった直後はそんな話も出てたような まぁperlかPowerShell使えばリネームなんて簡単だろ
120 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:34:49 ] 前に同じような減少に見舞われたときは 原因を調べるもの面倒だったからファイル名を一括置換した なんでそうなるんだろうなあ
121 名前:110 mailto:sage [2007/12/03(月) 05:34:34 ] >>119 まぁリネーム自体は簡単なんだろうけど,そもそも ツールセット名ってどっかで正規化されていないのかと. bjam で指定するツールセット名も msvc だけでも 受け入れられるし, msvc-vc8 や msvc-vc80 なども 変に柔軟に受け入れられるけど,オートリンクでは vc80 とか指定してくるし… 「自分でつけた名前だろ!自分でオートリンクできずにどうするよ!」 って突っ込みを入れたくなった.
122 名前:110 mailto:sage [2007/12/03(月) 09:08:54 ] ツールセット名は msvc-8.0 と msvc-9.0 にすると ちゃんと vc80 と vc90 って文字がライブラリのファイル名に含まれます。 msvc / msvc-vc80 / msvc-vc90 も受け入れられるけど、 そうするとライブラリのファイル名におけるツールセットの部分が vc になってしまってオートリンクなどで都合が悪いです。
123 名前:110自分用メモ mailto:sage [2007/12/03(月) 09:41:13 ] V:\boost-vc8>bjam --builddir=builddir --build-type=complete --toolset=msvc-8.0 stage V:\boost-vc9>bjam --builddir=builddir --build-type=complete --toolset=msvc-9.0 stage
124 名前:デフォルトの名無しさん [2007/12/05(水) 12:27:20 ] BOOST_STRONG_TYPEDEF マクロって,テンプレート版ないのかな? typedef StrongTypedef<int> MyIntType; みたいに使いたい.自分で勝手に上のような使い方をしてるけど, 標準があるならそちらに従いたい. あと,BOOST_STRONG_TYPEDEF って totally_ordered しか 持っていないけど,もっと一般に additive とかそういうのを 持っているバージョンもあればいいと思う. さらに serialization にも対応してたらいいなぁ. #全部「おまえがやれ,自由に」と言われそうだけど #標準が決まってるほうが可読性が上がると思う.
125 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 14:12:06 ] >>124 > もっと一般に additive とかそういうのを > 持っているバージョンもあればいいと思う. 具体的にはどういう型の時なの? additiveが有効なのは。 この辺は、 class NAME##_archetype { ってマクロでやってるから、 テンプレートに文字列処理がないとテンプレートだけでやるのは厳しいね。
126 名前:デフォルトの名無しさん [2007/12/05(水) 21:17:01 ] bjamでビルドするときコンパイラに追加で渡したいフラグを設定するにはどのようにすればよいですか? warning C4996: 'std::XXX': Function call with parameters that may be unsafeとうるさいので bjam --toolset=msvc-9.0express "--cxxflags=/wd4996" stage としてみたのですがガンガンwarning C4996が報告されてしまいます できればboost/config/user.hppとかをいじくらずbjamのオプションとかで渡したいです
127 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:20:50 ] bjamのオプションもたぶんあるんだろうけど、 わかんなかったら環境変数CLを使えばよいんじゃないかな。
128 名前:126 mailto:sage [2007/12/05(水) 21:45:28 ] わぉ 環境変数はずっとCFLAGSに設定してました ありがとうございます
129 名前:デフォルトの名無しさん [2007/12/07(金) 07:57:36 ] scoped_ptr の実装を見て operator! が定義されているから safe bool idiom にしようとおもって scoped_ptr を 継承した my_scoped_ptr を作ったら conversion が ambiguous だって怒られた.
130 名前:デフォルトの名無しさん [2007/12/07(金) 10:07:16 ] class A : public B のようにクラスを継承しています。 B に非侵入型の serialize が定義されている場合には A の serialize も非侵入型にしなくてはならないのでしょうか?
131 名前:130 [2007/12/07(金) 11:04:41 ] すみません、自分の勘違いだったようです。 boost::serialization 関係でもうひとつですが, BOOST_STRONG_TYPEDF で定義した型はそのまま シリアライズできないのでしょうか? 自分で非侵入型の serialize を定義するべきですか? boost.org/libs/serialization/doc/wrappers.html ここを見ると BOSOT_STRONG_TYPEDEF(T,D) で作った型 D をシリアライズする際には T に自動的に変換されるので そのままでいい、ということのようですし、実際 BOOST_STRONG_TYPEDEF マクロの定義を見ても そこで定義されている構造体には確かに変換が用意されているようなのですが
132 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:44:00 ] Boost.Preprocessorで、BOOST_PP_CAT(t, Foo)が tFoo でなく tWFoo と展開されたのだが・・・ t が他の文字ならおkで、また別のプロジェクトだと tFoo と正しく展開された。 ずっと解決できないので誰かご教授ください m(_ _)m
133 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:06:20 ] >>132 tっていうマクロかtFooっていうマクロが定義されてるとか?
134 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:19:07 ] boost::bindで拘束する変数はコピー可能なオブジェクトでないと駄目ですか?
135 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:39:51 ] >>134 ref、cref
136 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:43:20 ] >>135 ありがとう
137 名前:132 mailto:sage [2007/12/09(日) 05:28:54 ] >>133 左手のトークンの末尾が 't' だと駄目なようです。 BOOST_PP_CAT(Get, Hoge) とか BOOST_PP_CAT(Object, Piyo) とか。
138 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 08:20:28 ] >>137 それはもしかしてプリプロセッサのバグじゃないか? 使ってるプリプロセッサ何?
139 名前:132 mailto:sage [2007/12/09(日) 08:59:35 ] >>138 VC++ Express 2005 です。 新規プロジェクト作り直して丸ごと移したら正常にコンパイル出来ました・・・ 何か気持ち悪いけど、どこかプロジェクトの設定が壊れてたのだと思います。 お騒がせしました。
140 名前:132 mailto:sage [2007/12/09(日) 09:49:06 ] と思ったらまた再発したorz 何だこれ
141 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:28:26 ] 2005でboost使うのは辞めてくれ。 stdとtr1だけにしとけ