トップページ⇒tech
988コメント299KB

Boostを語れゴラァ part5

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001BOOTS2007/10/18(木) 08:09:35
語って.はぁと part boost::mpl::int_<5>

過去スレ
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/
0893オガちゃん萌え ◆tyvkWCNtzY 2008/03/23(日) 21:04:51
>>885
OSうんぬんより、mutexは別スレッドからlock/unlock期間中のアクセスを待機させるから安全か
どうかとえば、使用は慎重を期するよ
別プロセスは関係ないが…
共有メモリやらメモリマップドファイルは別だけど
セマフォ、ミューテックスの使用は本当に必要であるかを加味した方が良さそうに思う
boost::thread::mutex(だっけ?) はでも便利だね
スコープから抜ければ勝手にデストラクタがunlockしてくれるのも楽でよい
自作してもauto変数なら当然かも試練、スマソw

>>886
悪の枢軸たるWindowsもそう考えると良いとこあるのかね
でもさ、結局printfなんかもさMSVCRT.dllなんかがラップしてんだよね
メイクファイルでビルドしようとしてリンクエラーで苦戦したことがよくあったなあ

>>888
>>891が答え書いてるけど、bindは便利だよな!
0894デフォルトの名無しさん2008/03/23(日) 22:06:13
STLスレでもやってたけど、ここはお前の雑談スレじゃないんだよ?
0895デフォルトの名無しさん2008/03/23(日) 22:11:55
410 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/22(土) 20:51:00
なんで雑談してんの?

411 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/22(土) 23:17:29
相談が無いからだろう

相談できる雰囲気でもないがね

412 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/23(日) 00:44:28
何で雑談しているのかを聞く それも雑談なんじゃね?
自分の胸に聞くのがはえーんじゃね?

415 名前:オガちゃん萌え ◆tyvkWCNtzY [sage] 投稿日:2008/03/23(日) 20:37:34
>>410-412
まぁ固いこと言わないでマターリやろうよ

こんな事書く人間に何を言っても無駄かと
NGが得策
0896オガちゃん萌え ◆tyvkWCNtzY 2008/03/23(日) 22:25:51
>>894-895
スレ違いってほど外れた話題はしてないつもりだが?
俺叩く暇あるなら、なんかboostについて書いてくれ
0897デフォルトの名無しさん2008/03/23(日) 22:31:18
なんていうかもう糞コテ氏ねとしか
0898デフォルトの名無しさん2008/03/23(日) 22:39:32
boostはもう無しで生きていけないけど、テンプレート使い過ぎて
時々コンパイラが音を上げるのが困る
0899オガちゃん萌え ◆tyvkWCNtzY 2008/03/23(日) 23:42:11
>>898
STLスレで誰か書いていたが、EffectiveSTLにSTLのエラーは読むなってのがあって、実際に本棚に
埋もれたEffectiveSTL読んだらconstキャスト忘れとかのエラーを理解しろみたいなのが書いてあったよ
SingletonとAbstractFactoryパターンをよく使うんだが、AbstractFactoryをテンプレートにして
中にmap<int, string>かなんかやったときにwarningが出まくったことあったw
それこそ、この内容はSTLか。
boost一番よく使うのはツールだな
tokenizer、regex、bindなんかはもう無しじゃ生きていけない
0900デフォルトの名無しさん2008/03/24(月) 00:33:17
C++から基底クラスを公開してPythonでクラスを継承して実装、
C++からその実装されたクラスをnewしてPythonに渡す。
といったような事がやりたいんですが、boost.pythonで出来ますか?

参考書籍、およびサイトなども教えてもらえたらありがたいです。
0901デフォルトの名無しさん2008/03/24(月) 07:41:37
できたらすごいな。
俺はPython使い始めたばっかりで一方向の使い方しかしてないけど興味ある。
できたら教えて欲しいな。
0902デフォルトの名無しさん2008/03/24(月) 10:14:15
IronPythonならそのものズバリな事が簡単にできるんだがのぉ。
0903デフォルトの名無しさん2008/03/24(月) 13:56:39
>>902
ドトネトは断る!

って、うそ。 C++/CLI は使ってるし。
とはいえ、非UNIXで動かしたいプログラムに
多いんだよな、Boost.Python 使いたくなるケース。

IronPython + mono でやれって?断る!
0904デフォルトの名無しさん2008/03/24(月) 13:59:17
上のほうにも出てたがLua+LuaBindでも使ったほうがいいんじゃないか。
ランタイムDLL類不要になるし。
0905デフォルトの名無しさん2008/03/24(月) 15:53:59
>>904
Lua + LuaBindとかSquirrel + SqPlusとかも考えましたが、
Boost.Pythonで無理ならSquirrelにするかな。

ランタイムDLLはオプションをdefineしてやればいらなくなると
どっかで読んだ覚えがあるんですが読み間違いですかね。
0906デフォルトの名無しさん2008/03/25(火) 22:31:11
VS2005 で作っていたプログラムを VS2008でコンパイルしたら;

Unknown compiler version - please run the configure tests and report the results

と言うワーニングが Boost を使っているソースででました。
リンクも成功し、実行もできるのですが。。

このワーニングを消すにはどのようにしたらよいのでしょうか?
0907デフォルトの名無しさん2008/03/25(火) 22:56:11
SVNのHEADを落として使う。
1.34.1がでたのは、VC9が出る前だ。
0908デフォルトの名無しさん2008/03/26(水) 01:00:40
ここで、どなたかがUpしてくれた、1.35 の Build 済みを使ったのですが。。
ヘッダーは VC8,VC9 共通みたいでした。
0909デフォルトの名無しさん2008/03/26(水) 03:24:57
何人かの人がバイナリを上げているみたいですが、そのうちの一人です。
boostのどのライブラリでワーニングが出ます?もう少し詳しい状況が分かると調べられるのですが。
0910デフォルトの名無しさん2008/03/26(水) 05:28:28
その画像がどのスレッドに貼られていたのか分からないんだよな
0911デフォルトの名無しさん2008/03/26(水) 10:04:29
>>907
おいらは906じゃないけど、SVN で落としたのに置き換えたらエラーがでなくなった
あんがと
0912デフォルトの名無しさん2008/03/26(水) 10:42:38
最新版のヘッダーのみ落としてきていれたんですが、ワーニングは消えませんでした;
コンパイル時に config/visualc.hpp 内のワーニングなので、ライブラリは関係なさそうなのですが。。
0913デフォルトの名無しさん2008/03/26(水) 11:31:54
消えないって言うんだったら、
1.35の正式版が出るまで無視するってのは駄目か?
どうせ実害はないんだし。
0914デフォルトの名無しさん2008/03/26(水) 12:17:22
HEADは結構不安定。
まぁ自分の使いたいライブラリがうまく動いていればそれでよし。
0915デフォルトの名無しさん2008/03/26(水) 16:18:25
ありがとうございます。正式版までワーニングは見ないことにします。
0916デフォルトの名無しさん2008/03/30(日) 11:14:46
1.35.0キタ
0917デフォルトの名無しさん2008/03/30(日) 12:05:34
>>916
News
* Version 1.35.0
New Libraries: Asio, Bimap, Circular Buffer, Function Types, Fusion, GIL, Interprocess, Intrusive, Math/Special Functions, Math/Statistical Distributions, MPI, System.
Updated Libraries: Graph, Hash, Iostreams, Multi Array, Multi-index Containers, Serialization, Thread, Wave, Xpressive.
March 29th, 2008 12:00 GMT

ひさしぶりのうpだけあって盛りだくさんだなぁ
0918デフォルトの名無しさん2008/03/30(日) 12:19:33
相変わらずVC8.0最強なんですか
0919デフォルトの名無しさん2008/03/30(日) 12:32:34
これでまたしばらくビルドできませんの質問が相次ぐんだろうか
0920デフォルトの名無しさん2008/03/30(日) 12:47:12
Boost.InterprocessのWindowsの実装って貧弱じゃない?
というかPOSIXを前提に設計されているようで、
Windowsだと素直に実装できないってのもあるのかな。
0921デフォルトの名無しさん2008/03/30(日) 13:27:27
threadingやasyncなんかもそういうノリで作ってそうだから
敬遠してる
0922デフォルトの名無しさん2008/03/30(日) 17:03:02
http://www.kmonos.net/alang/boost/build.html
と本スレ参考にv1.35を
�@vcvars32.bat実行
�Abjam --toolset=msvc-9.0 stage
としたんですが、以下のように出てビルドできません。
何か足りないツールでもあるのでしょうか?

MkDir1 lib
'C:\DOCUME~1\????' ???A?????R?}???h???????O???R?}???h?A
???????\???v???O???????????o?b?` ?t?@?C?????????F?????????????????B

mkdir "lib"

...failed MkDir1 lib...
MkDir1 bin.v2
'C:\DOCUME~1\????' ???A?????R?}???h???????O???R?}???h?A
???????\???v???O???????????o?b?` ?t?@?C?????????F?????????????????B

mkdir "bin.v2"

...failed MkDir1 bin.v2...
...skipped bin.v2\libs for lack of bin.v2...
...skipped bin.v2\libs\test for lack of bin.v2\libs...
...skipped bin.v2\libs\test\build for lack of bin.v2\libs

以下たくさんskipped

0923デフォルトの名無しさん2008/03/30(日) 17:41:06
一般論として、空白か非ASCII文字(ユーザ名)を含んだパスが悪さしている可能性はないか?
0924デフォルトの名無しさん2008/03/30(日) 17:50:37
>>923
ユーザー名は確かに日本語ですわ。
で、多分"Documents and Settings"配下で何かしようと
してるんだと思うんだけどユーザーだけ切り替えればいけるかな。
やってみる。

�@vcvars32.bat実行
�Abjam --toolset=msvc-9.0 stage
の手順は一般的に問題ないっすよね?
0925デフォルトの名無しさん2008/03/30(日) 18:17:59
やっぱりユーザー名だったみたい。
administratorに切り替えたらビルドできたような気がする。
dllとかlibがbin.v2っていうフォルダに出来てる。
ただ、
bjam --toolset=msvc-9.0 stage だと
アップデートになってしもうた。
1.35で新たに追加されたAsioやら全てをビルドするためには
別のオプションがいる??
0926デフォルトの名無しさん2008/03/30(日) 18:25:04
アップデートだとAsioとかビルドされていない?
0927デフォルトの名無しさん2008/03/30(日) 19:31:09
>>926
1.34.1の既存のものはビルドされた(アップデート)んだけども
1.35.0で新しく追加されたものがビルドされてないみたい。

bjam --builddir=builddir-vc9 --build-type=complete --toolset=msvc-9.0 stage 2>&1 | tee c:\boost.log

でやってみたんだけど、static、dynamic(dll)の二つのバージョンが出来たこと以外
変わらんかった。

http://www.boost.org/doc/tools/jam/jam/usage.html
には
bjam ( -option [value] | target ) *
でtargetを指定しなければ全てビルドされると書いてあるんだけどなあ。
0928デフォルトの名無しさん2008/03/30(日) 19:50:45
>>922

bjamの最新版は日本語メッセージが文字化けして???になるよ。

0929デフォルトの名無しさん2008/03/30(日) 20:07:01
>>928
ああそうなんだ。
とりあえず既存のものはビルドできるみたいだ。
release、debugとも出来てる。
asioとかがビルドできない。ビルド対象を指定するか
設定ファイルなんかが必要なんだろうか。
0930デフォルトの名無しさん2008/03/30(日) 20:37:58
>>929
asioはライブラリ不要のはず
0931デフォルトの名無しさん2008/03/30(日) 21:16:54
新しい機能のレビューお願いします
0932デフォルトの名無しさん2008/03/30(日) 21:28:17
waveがイマイチ遅い
0933デフォルトの名無しさん2008/03/30(日) 21:56:29
>>930
ホントだ。そうみたい。
もしかして1.35でライブラリ作成する必要のある新しいものって
無いのかも?

ソケットで遊んで見る。
0934デフォルトの名無しさん2008/03/30(日) 22:32:33
ASIOとかWaveとか一瞬スレ間違えたかと思った
0935デフォルトの名無しさん2008/03/30(日) 22:40:41
サウンドプログラミングかよ
0936デフォルトの名無しさん2008/03/30(日) 22:42:11
>>933
新しいものの中ではsystemが要ビルド。
0937デフォルトの名無しさん2008/03/30(日) 22:45:49
>>936
それならstage\libにライブラリできてるから成功してるっぽい。
0938デフォルトの名無しさん2008/03/31(月) 01:02:35

0939デフォルトの名無しさん2008/03/31(月) 01:17:39
しかし、bjamはいい加減、VC8以降はシングルスレッドビルドを無視、あるいはエラーを返すべきだと思うんだ。
自分で指定するのめんどくさい。
0940デフォルトの名無しさん2008/04/01(火) 02:50:31
cとpython混合させたきゃpython.ctyes使え
boost.pythonはpythonをcから呼びたい時だけ使うのがいい
0941デフォルトの名無しさん2008/04/01(火) 14:55:03
sqliteをハンドリングするような関連コンポーネントってあるのかな
0942デフォルトの名無しさん2008/04/01(火) 21:32:57
boost::propertyはC#みたいなプロパティー作れるものなの?
0943デフォルトの名無しさん2008/04/02(水) 02:49:16
開発環境としてVS2005を使用し、
tokenizerを使用したプログラムをデバッグモードで実行したところ
超絶遅くて絶望したんですけど、これは回避できないですか?
0944デフォルトの名無しさん2008/04/02(水) 03:17:27
リリースモードで実行
0945デフォルトの名無しさん2008/04/02(水) 17:54:19
GCCだとboost.testやboost.optionalがテスト通らない
Boostの中の人はM$信者なの??
0946デフォルトの名無しさん2008/04/02(水) 18:15:37
>>945
信者どころか社員いるし
しかし、パスするテストを増やすのに必要なのは信者じゃなくて人柱と開発者だ
0947デフォルトの名無しさん2008/04/02(水) 18:44:53
でもまだVC++2008はちゃんと対応してない。
0948デフォルトの名無しさん2008/04/02(水) 20:53:59
spiritのセマンティックアクションにメンバ関数を渡したい場合、
どういう方法が良いでしょうか?
0949デフォルトの名無しさん2008/04/02(水) 21:02:02
bindするもんなんじゃないの?
0950デフォルトの名無しさん2008/04/02(水) 21:56:08
>>949

struct parse : public grammar<parse>
{
 template <typename ScannerT>
 struct definitionmy(parse const& self) {
  //略
  int_p[bind(&parse::func, self, _1)]; //bindでメンバを渡す
 };

 void func(const int val);
};

こういうことですか?

他の方法って無いのでしょうかね?
毎回bind書くのはしんどいんですが。
0951デフォルトの名無しさん2008/04/02(水) 22:35:21
俺も最初bindしていたけど、たしかに面倒になってきて、
極力assign_aとかpushback_aとか定義済みのやつで済ませるようになった。

あと、そのfuncはconst付けないとエラーになるよ。
0952デフォルトの名無しさん2008/04/02(水) 23:58:07
ところでboost1.35.0とbjam3.1.16-1で

bjam --toolset=msvc-8.0 -sBZIP2_SOURCE=〜 -sZLIB_SOURCE=〜 --stagedir=. stage

ってやってビルドしたら、なぜかreleaseビルドのマルチスレッドのlibファイルしかビルドされないんだが、こういう仕様に変わったの?
前はdebugとかも出てたよね?
0953デフォルトの名無しさん2008/04/03(木) 00:33:38
>>952
試行錯誤の結果、こうすれば全部ビルドされた

bjam --toolset=msvc-9.0 stage release debug link=static,shared runtime-link=static,shared

BZIP2_SOURCEとかは事前にsetしてある
0954デフォルトの名無しさん2008/04/03(木) 00:56:22
>>951
>funcはconst付けないとエラーになる

boost::functionに一旦入れてから使ったらエラーが出ずに
通っちゃったので気が付きませんでしたw
0955デフォルトの名無しさん2008/04/03(木) 01:50:21
>>954
どうやったの?

俺も今Spirit使ってんだが、constが厳しくて
mutableにお出ましいただいている。
0956デフォルトの名無しさん2008/04/03(木) 02:15:28
>>954
大まかには950で、

 struct definitionmy(const parse &self) {
  boost::function<void (const wchar_t*, const wchar_t*)> fnc;
  fnc = boost::bind(&parse::func, self, _1, _2);
  r = str_p("hoge")[fnc];
 };

void func(const wchar_t *p1, const wchar_t *p2);

これで通ってしまいましたよ。
デバッガでfuncが呼び出されるのも確認できました。
0957デフォルトの名無しさん2008/04/03(木) 02:18:10
>>944
それで解決しました。でもブレークできない諸刃の剣です。
0958デフォルトの名無しさん2008/04/03(木) 02:38:06
>>956
おお、VC++ 2008でもGCC 4.2.3でもエラーでない。

ってエイプリルフールはもう過ぎたぞ。見事に釣られたが。
bindで束縛するときは値渡しだからコピーされているだけだw。
ref使うとやっぱりコンパイルエラーになる。

まあ俺も人のこと笑えない。同じようにbindしている場所がある。
メンバが解析データ保持のshared_ptrだけだから何とも問題が起きなかったわけだ。
0959デフォルトの名無しさん2008/04/03(木) 04:27:58
http://language-binding.net/pyplusplus/pyplusplus.html
これってどのぐらい便利なの?
0960デフォルトの名無しさん2008/04/03(木) 05:38:30
CableSwigなんてあるんだね
http://www.itk.org/HTML/CableSwig.html
boost.pythonと比べたらどっちがいいのかな
0961デフォルトの名無しさん2008/04/03(木) 15:50:02
>>958
うは、素で気が付かなかったorz
0962デフォルトの名無しさん2008/04/03(木) 16:46:25
Boost.Python のビルドって、Python 自身がインストールされて
いなくても完了するように見えるんだけど、正しい?
Boost.Python のヘッダファイルやソースコード眺めてても
Python 自身のヘッダファイルはインクルードして無いように見える。
09639622008/04/03(木) 17:18:57
ごめん、よく探したらいろいろと Python 関連の
ヘッダをインクルードしていた。とくにインクルールパス
を指定していないのになぜかビルドに成功する。
bjam の魔法かな? Windows XP2
0964デフォルトの名無しさん2008/04/03(木) 18:37:29
python.jam見るとレジストリから取得しているっぽい
0965デフォルトの名無しさん2008/04/03(木) 23:12:19
>>953
�d
夜中に手を煩わせて申し訳ない。おかげで全部のlibファイルビルドする事ができました。

bjam自体の仕様が変わったのか、libフォルダへのコピーをしなくなっていたけど。
0966デフォルトの名無しさん2008/04/03(木) 23:38:48
>>965
BOOST_DIR/stage/libにはいってない?
--stagedirオプションをつけないとデフォルトではstageディレクトリの中にlibが作られる。
0967デフォルトの名無しさん2008/04/04(金) 20:10:02
>>966
すまない、まさにそれだった。
0968デフォルトの名無しさん2008/04/05(土) 00:50:46
HAVE_ICU=1 でビルドすると
extra argument icui18n
なんてエラーが出て前に進めないよ!
まるで僕の人生のようだ。
助けて!

ICU は 3.8.1 使ってます。
0969デフォルトの名無しさん2008/04/05(土) 01:08:19
736 :デフォルトの名無しさん:2007/09/26(水) 10:14:42
メモメモ

vc8環境下でICU3.8をビルドしてboost.regexで使うようにすると
icui18n.libとかicudata.libが無いっておこられる
そこでicuin.libとicuind.libをicui18n.lib icui18nd.libに、
icudt.libをicudata.libにコピー&リネームすると通る
regexのテストは一応全通過

本来はどうするべきなんだろうか…
ーーーーーーーー
ってコトらしいけど、どうしたもんかなぁ。
0970デフォルトの名無しさん2008/04/05(土) 01:09:26
ICU3.6でも同じ現象だから、これは boost の方をいじるべきかなぁ。
0971デフォルトの名無しさん2008/04/05(土) 01:19:43
libs\regex\build\Jamfile.v2の適当に該当しそうなとこ書き換えてみるとかどうよ
0972デフォルトの名無しさん2008/04/05(土) 01:21:59
boost::exceptionとかacceptされてたと思うけど、その辺の最近acceptされたやつは入ってないんだね。
個人的にはintrusiveが面白そうかなぁ。
0973デフォルトの名無しさん2008/04/05(土) 01:47:03
libs\regex\build\Jamfile.v2 読んで判明。
HAVE_ICU と ICU_PATH を同時に使っちゃだめだったんだ。
多分 HAVE_ICU はもう obsoleted で ICU_PATH だけ設定
すればライブラリファイルは自動判別してくれるみたい。

って、ライブラリのファイル名の問題は解決したけど、
結局以下のエラーでビルドできん・・・

G:/boost-trunk/Version_1_35_0/tools/build/v2/kernel\class.jam:93: in new
*** argument error
* rule object(searched-lib-target)@659.__init__ ( name : project : shared ? : search * : action )
* called with: ( icudt icuin icuuc : object(project-target)@79 : true : /C:/Program Files/ICU4C/icu4c-3.8.1/lib : object(null-action)@658 : : : : )
* extra argument icuin
G:/boost-trunk/Version_1_35_0/tools/build/v2/tools\builtin.jam:349:see definition of rule '__init__' being called

bjam を使いこなすには python の知識が必要なんだろうか・・・
0974デフォルトの名無しさん2008/04/05(土) 03:01:12
1.35.0はMS専用なのかなー?
0975デフォルトの名無しさん2008/04/05(土) 03:45:58
Building With Unicode and ICU Support
http://www.boost.org/doc/libs/1_35_0/libs/regex/doc/html/boost_regex/install.html#boost_regex.install.building_with_unicode_and_icu_support

ううむ、Windows + VC9 でうまくいかん・・・
直接の原因は buildin.jam で定義されている

class searched-lib-target : abstract-file-target
{
rule __init__ ( name
: project
: shared ?
: search *
: action
)

のコンストラクタの引数 name に、ICU4C で必要なライブラリを
3つ渡しているからなんだが( name は一つしか受け取れない)。
0976デフォルトの名無しさん2008/04/07(月) 04:20:20
boost初心者で、特にrandom.hppしか使ってないのですがl、質問させてください。
標準正規分布のrandom variableを生成するクラスを作ったのですが、
class nrv {
public:
nrv() :
gen(time(NULL)),
dst(0.0, 1.0),
rv(gen, dst) {}
double val() const { // ここのconstをはずすとコンパイルできる
return rv();
}
private:
mt19937 gen;
normal_distribution<> dst;
variate_generator<mt19937, normal_distribution<> > rv;
};
上のconstをはずすとコンパイルできないのはなんででしょうか?
0977デフォルトの名無しさん2008/04/07(月) 04:29:54
variate_generator::operator()がconstでないから

この説明で判らないならC++初心者スレ行ってこい
0978デフォルトの名無しさん2008/04/07(月) 11:25:54
>>977
よくわかりませんでした(泣)
rv()はvariate_generator::operator()というのはわかりますが、それが手元のboost-1.34.1だと
result_type operator()() { return _dist(_eng); }
という実装になっていて、それが参照とかポインタとかを返してるから、ということでしょうか?
でもこれはdoubleを返すんじゃないかと思ったのですが。

あと、以下のコンパイルエラーの箇所でエラーになる理由は何でしょうか?
class nrv {
public:
nrv(int seed) :
gen(seed), // ここでコンパイルエラー。seedを定数(0とか1とか)にするとコンパイルとおる。
dst(0.0, 1.0),
rv(gen, dst) {}
private:
mt19937 gen;
normal_distribution<> dst;
variate_generator<mt19937, normal_distribution<> > rv;
};

0979デフォルトの名無しさん2008/04/07(月) 12:20:35
>>978
C++ではメソッドにconstをつけることができる。つまり、
 result_type operator()() const { return _dist(_eng); }
となっていればできる。

後者は多分、seedの型がunsignedじゃないから
オーバーロードの問題が出ているのだと思う。
0980デフォルトの名無しさん2008/04/07(月) 12:25:25
>>978
- nrv(int seed) :
+ nrv(mt19937::result_type seed) :
0981デフォルトの名無しさん2008/04/07(月) 12:30:45
>>978
前半部分について
result_type variate_generator::operator()() { return _dist(_eng); }
↓
//some pseudo code
result_type operator()(variate_generator * const this) { return _dist(_eng); } //�@

一方、
double nrv::val() const {
return rv();
}
↓
//some pseudo code
double val(const nrv * const this) {
return (this->rv)();
}
↓
double val(const nrv * const this) {
return (this->rv).variate_generator::operator()();
}
↓
double val(const nrv * const this) {
return operator()(&(this->rv)); //�@の呼び出し
}

&(this->rv)の型は少なくともconst variate_generator *だが、�@のパラメータは
variate_generator *であり、variate_generator *をconst variate_generator *
では初期化できない。
0982デフォルトの名無しさん2008/04/07(月) 20:02:16
判らないなら初心者スレ行けと言っておろうに
0983デフォルトの名無しさん2008/04/07(月) 21:47:57
>>977,>>982
仕切るなよ、糞野郎!
0984デフォルトの名無しさん2008/04/07(月) 22:31:17
>>983
同じこと思った香具師はいっぱいいるから代表ってとこだろ
0985デフォルトの名無しさん2008/04/07(月) 23:18:35
>>984
>>982 = >>977 だよ
初心者スレに行っても、boostのことがわかってないと
>>981のような回答は難しいんで結局このスレで聞くのが良いと思う
09869842008/04/07(月) 23:33:44
>>985
boost初心者スレ無いのか…
確かにboost以前の問題を解決できる人にboost初心者スレは必要ないような気もするし
スキマにはさまって身動きできない人を救済するのはこっちのスレの役目か
0987デフォルトの名無しさん2008/04/08(火) 02:45:55
普通にC++のスレで聞けば教えてくれるよたぶん
0988デフォルトの名無しさん2008/04/08(火) 18:02:39
誰か boost 1.35 + Visual C++ 8/9 + ICU で
regex のビルドできている人います??
Linux ではできてるんだけど・・・
レス数が950を超えています。1000を超えると書き込みができなくなります。