[過去ログ] Boostを語れゴラァ part3 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
133(6): 2006/10/17(火)22:47 AAS
誘導されてきました
int main(int argc, char * argv[])
{
boost::numeric::ublas::vector<float > vec(2);
vec(0)=1.0;vec(1)=2.0;
boost::function1<
float,boost::numeric::ublas::vector<float>
> norm_2Functor = &boost::numeric::ublas::norm_2<boost::numeric::ublas::vector<float> >;
float out= norm_2Functor(vec) ;
}
想定外のメモリーを参照しました
で落ちる。何が悪いのだろう。
142(1): 2006/10/19(木)03:24 AAS
>>133
VC8+boost1.35で試したらちゃんと動いたけど
使ってるコンパイラとboostのバージョンは?
143: 133 2006/10/19(木)09:30 AAS
>>133
>>142
VC2003 + boost 1.33.1
です
とりあえずboostのバージョンあげてきます
144(1): 133 2006/10/19(木)09:34 AAS
外部リンク[php]:sourceforge.net
boost1.35なんてないよ
146: 2006/10/19(木)11:36 AAS
>133
out = 2.236068
g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。
148: 2006/10/19(木)11:46 AAS
>>133
VC8+boost1.33.1でもちゃんと動くね
149: 2006/10/19(木)16:25 AAS
>>133
VC2003で試したら落ちたのでアセンブリ出力を調べてみた。
function1<float, ublas::vector<float> > norm_2Functor = &ublas::norm_2<ublas::vector<float> >;
and eax,00402fd0 ; ここがおかしい。なんでANDやねん...(00402fd0はnorm_2のアドレス)
push eax ; VC8では2行あわせてpush 00402fd0だけになっている
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01
で、norm_2Functorの宣言をこうしたらとりあえず動いた。
function1<float, ublas::vector<float> > norm_2Functor(&ublas::norm_2<ublas::vector<float> >);
push +00 ; この00は何なんだろう…
push 00402fd0
lea ecx,dword ptr [ebp-3c]
call 00403040
mov byte ptr [ebp-04],01
よくわからないpush 00がとても不安だけど…(VC8ではpushはひとつだけ)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.039s