[過去ログ]
Boostを語れゴラァ part3 (1001レス)
Boostを語れゴラァ part3 http://echo.5ch.net/test/read.cgi/tech/1158991211/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
139: デフォルトの名無しさん [sage] 2006/10/19(木) 00:35:46 スピンロックかも http://echo.5ch.net/test/read.cgi/tech/1158991211/139
140: デフォルトの名無しさん [sage] 2006/10/19(木) 00:49:28 Win32だとInterlockedExchange()あたり使ってるんじゃなかったか。 http://echo.5ch.net/test/read.cgi/tech/1158991211/140
141: デフォルトの名無しさん [sage] 2006/10/19(木) 01:43:59 >>138 つ boost/detail/sp_counted_base.hpp http://echo.5ch.net/test/read.cgi/tech/1158991211/141
142: デフォルトの名無しさん [sage] 2006/10/19(木) 03:24:06 >>133 VC8+boost1.35で試したらちゃんと動いたけど 使ってるコンパイラとboostのバージョンは? http://echo.5ch.net/test/read.cgi/tech/1158991211/142
143: 133 [sage] 2006/10/19(木) 09:30:48 >>133 >>142 VC2003 + boost 1.33.1 です とりあえずboostのバージョンあげてきます http://echo.5ch.net/test/read.cgi/tech/1158991211/143
144: 133 [sage] 2006/10/19(木) 09:34:24 http://sourceforge.net/project/showfiles.php?group_id=7586 boost1.35なんてないよ http://echo.5ch.net/test/read.cgi/tech/1158991211/144
145: デフォルトの名無しさん [sage] 2006/10/19(木) 11:14:37 >>144 CVSの最新版が1.35 http://echo.5ch.net/test/read.cgi/tech/1158991211/145
146: デフォルトの名無しさん [sage] 2006/10/19(木) 11:36:49 >133 out = 2.236068 g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。 http://echo.5ch.net/test/read.cgi/tech/1158991211/146
147: デフォルトの名無しさん [sage] 2006/10/19(木) 11:43:43 コンパイラか http://echo.5ch.net/test/read.cgi/tech/1158991211/147
148: デフォルトの名無しさん [sage] 2006/10/19(木) 11:46:32 >>133 VC8+boost1.33.1でもちゃんと動くね http://echo.5ch.net/test/read.cgi/tech/1158991211/148
149: デフォルトの名無しさん [sage] 2006/10/19(木) 16:25:42 >>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はひとつだけ) http://echo.5ch.net/test/read.cgi/tech/1158991211/149
150: デフォルトの名無しさん [sage] 2006/10/20(金) 21:04:32 VS2003ではfunction1を初期化 norm_2Functor(&ublas::norm_2<ublas::vector<float> >); でしか呼べないのね。 objectの意味ねえ http://echo.5ch.net/test/read.cgi/tech/1158991211/150
151: デフォルトの名無しさん [sage] 2006/10/20(金) 21:49:33 >>150 function1<float, ublas::vector<float> > norm_2Functor(NULL); で宣言しておいてswap技法 function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >).swap(norm_2Functor); で実際の関数を代入とか… ヤッテランネ(ノ`□´)ノ⌒┻━┻ http://echo.5ch.net/test/read.cgi/tech/1158991211/151
152: 151 [sage] 2006/10/20(金) 21:52:00 メンバ関数のswapがないから swap(norm_2Functor, function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >)); でないと無理か そもそもできるかどうか知らんけど http://echo.5ch.net/test/read.cgi/tech/1158991211/152
153: デフォルトの名無しさん [sage] 2006/10/20(金) 22:03:06 腐ったコンパイラでなんとかしようという努力は不毛だぜ http://echo.5ch.net/test/read.cgi/tech/1158991211/153
154: デフォルトの名無しさん [sage] 2006/10/20(金) 22:38:40 >>152 そもそも一時オブジェクトをswapの引数にはできん http://echo.5ch.net/test/read.cgi/tech/1158991211/154
155: デフォルトの名無しさん [sage] 2006/10/20(金) 23:17:36 >>154 --->?swap技法? http://echo.5ch.net/test/read.cgi/tech/1158991211/155
156: デフォルトの名無しさん [sage] 2006/10/21(土) 00:24:57 中国人は帰れよ http://echo.5ch.net/test/read.cgi/tech/1158991211/156
157: デフォルトの名無しさん [sage] 2006/10/21(土) 00:43:07 >>155 意味不明 http://echo.5ch.net/test/read.cgi/tech/1158991211/157
158: デフォルトの名無しさん [sage] 2006/10/21(土) 00:43:28 >>154 vectorが確保するメモリを要素数ぴったりに合わせるテクニックで x.swap(std::vector<T>(x)); ってのがあったと思うけど、これもダメなの? http://echo.5ch.net/test/read.cgi/tech/1158991211/158
159: デフォルトの名無しさん [sage] 2006/10/21(土) 00:46:06 一時オブジェクトをswapの引数にするのは何も問題ない(ちゃんとしたコンパイラなら) http://echo.5ch.net/test/read.cgi/tech/1158991211/159
160: デフォルトの名無しさん [sage] 2006/10/21(土) 00:50:03 constでない参照引数に一時オブジェクトはダメじゃなかったっけ? http://echo.5ch.net/test/read.cgi/tech/1158991211/160
161: デフォルトの名無しさん [sage] 2006/10/21(土) 01:01:03 >>158 VC++2003で警告レベルを最高にするとwarningになるな。 http://echo.5ch.net/test/read.cgi/tech/1158991211/161
162: デフォルトの名無しさん [sage] 2006/10/21(土) 01:27:59 23.1 Container requirementsによればa.swap(b)とswap(a,b)は同じで、 25.2.2 Swapによれば template<class T> void swap(T& a, T& b); 1 Requires: Type T is Assignable. とあるから、できないんじゃね? と思ってx.swap(std::vector<T>(x));とやったらVC++2005でエラーになった。 と思ったらstd::vector<int>(x).swap(x);は通った。 何じゃこりゃ。 http://echo.5ch.net/test/read.cgi/tech/1158991211/162
163: デフォルトの名無しさん [sage] 2006/10/21(土) 02:05:58 >>158 swap技法はstd::vector<T>(x).swap(x);じゃない? http://echo.5ch.net/test/read.cgi/tech/1158991211/163
164: デフォルトの名無しさん [sage] 2006/10/21(土) 07:43:54 >>162 template<class T> void swap(T& a, T& b); はaもbも非const参照だから、一時オブジェクトを受け付けない。 std::vector<int>(x).swap(x);は、 std::vector<int>(x)が一時オブジェクトだが非constなので、非constなメンバ関数を呼べてしまう。 http://echo.5ch.net/test/read.cgi/tech/1158991211/164
165: デフォルトの名無しさん [sage] 2006/10/21(土) 08:54:42 >>158 お前何にもわかってないのな >>159 馬鹿確定 http://echo.5ch.net/test/read.cgi/tech/1158991211/165
166: デフォルトの名無しさん [sage] 2006/10/21(土) 10:01:26 あ、一時オブジェクトに対して非constメンバを呼ぶのはいいのか。 http://echo.5ch.net/test/read.cgi/tech/1158991211/166
167: デフォルトの名無しさん [haskell厨] 2006/10/21(土) 21:13:06 int add(int a,int b){return a+b;} があるとして、 boost::function<int (int,int)> f = add; はコンパイルできるわけですが、 boost::function<boost::function<int,int> (int)> g = add; のようなことがしたい場合はどうし たらよいでしょうか?addを、int->int->int ではなく int-> (int->int) として扱いたいというか。 gに、あとで(addの)第一引数を渡して、boost::function<int,int>型の関数オブジェクトを得て、 更にその後で(addの)第二引数を渡し、最終結果を得たいという感じです。 http://echo.5ch.net/test/read.cgi/tech/1158991211/167
168: 167 [sage] 2006/10/21(土) 21:20:16 fをgに変換する方法でも結構です。 よろしくおながいします http://echo.5ch.net/test/read.cgi/tech/1158991211/168
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 833 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s