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


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

Boostを語れゴラァ part5



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/

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だけにしとけ



142 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:37:55 ]
>>141
VC++7.1 は対応度高かったと思うけど 2005 だともしかして劣化してる?
2008 beta はどうなんだろ。

143 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:51:47 ]
初耳だな

144 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 12:04:45 ]
>>142
2008はもう正式版出ているw

145 名前:デフォルトの名無しさん [2007/12/09(日) 12:56:18 ]
>>141
何の問題もないが.
時々 IntelliSense が黙るだけで.
VC9 ではかなり賢くなってる.
それでも boost::bind つかいまくりで
ファンクタ合成しまくりとかで黙ることもある.

146 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:09:37 ]
VC8だとuBLASにlambdaにfunctionにmplまで使ったらclがエラーで落ちたことがあったな。
SP1当てたら大丈夫になったけどさ。

147 名前:デフォルトの名無しさん [2007/12/10(月) 14:24:36 ]
boost::shared_ptr の参照カウンタがゼロになったときに、
delete 以外の解放処理を行わせる方法はありますでしょうか。

extern IMalloc* allocator;
{
boost::shared_ptr<ITEMIDLIST> pidl((ITEMIDLIST*)allocator->Alloc(10));
}
//ここでallocator->Freeを呼ばせたい

148 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 14:36:59 ]
>>147
デリータを指定できるコンストラクタがあるよ。

template <typename U, typename D>
  shared_ptr( U* ptr, D deleter);



149 名前:147 mailto:sage [2007/12/10(月) 15:08:43 ]
おぉぉ、ありがとうございます。
解決しますた。
クラス全体のテンプレート引数 (1個しか無い) にしか目がいってなくて、
コンストラクタのところを見てなかったです。orz

150 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 00:49:05 ]
>>149
焦っている時にありがちな罠だから落ち着いて資料を読めばいいと思うよ。(自分への叱咤でもありorz)


151 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 02:45:26 ]
msvc+stlportの環境下で、Boost Build v2で、boostをインストールした人って
いませんか?

VC++8 + STLport-5.1.4 に boost-1.34.1 を入れようとして、
Boostビルドまでは何とかこぎ着けたのですが(コンパイルエラーなしで)、
いざ、boostを使ったプログラムをメイクしようとすると、

error LNK2019: 未解決の外部シンボル
"bool __cdecl boost::filesystem::native(class stlpd_std::basic_string<char,class stlpd_std::char_traits<char>,class stlpd_std::allocator<char> > const &)"
(?native@filesystem@boost@@YA_NABV?$basic_string@DV?$char_traits@D@stlpd_std@@V?$allocator@D@2@@stlpd_std@@@Z)
が関数 _main で参照されました。

なんていうリンクエラーが出てしまいます。



152 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 03:53:33 ]
ライブラリをリンクしろ。

153 名前:デフォルトの名無しさん [2007/12/11(火) 08:58:58 ]
環境の判定に BOOST_PLATFORM マクロを使おうと
思ってるんだけど、プリプロセッサって
文字列の比較できないよね?
環境の判定によいアイディアあったら教えてプリーズ。






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

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

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