[過去ログ]
Boost総合スレ part9 (981レス)
Boost総合スレ part9 http://echo.5ch.net/test/read.cgi/tech/1275014987/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
910: デフォルトの名無しさん [sage] 2012/04/12(木) 01:05:06.21 >>909 規定された条件部の文法↓にマッチしないから。 condition: expression attribute-specifier-seq/opt decl-specifier-seq declarator = initializer-clause attribute-specifier-seq/opt decl-specifier-seq declarator braced-init-list http://echo.5ch.net/test/read.cgi/tech/1275014987/910
911: デフォルトの名無しさん [sage] 2012/04/12(木) 01:25:55.07 >>910 そもそも規格上無理なのね ありがとう http://echo.5ch.net/test/read.cgi/tech/1275014987/911
912: デフォルトの名無しさん [sage] 2012/04/21(土) 16:18:52.52 テンプレートクラスのメンバ関数を、 boost::threadとboost::bindで呼び出して、別スレッドで動かしたいのですが うまくいきません。ご教授願います。 template<class T> class TestClass : public T { public: TestClass(void) : T() {} }; class TestBase { public: void print(TCHAR *str){ cout << str << endl; }; }; typedef TestClass<TestBase> MyTestClass; int _tmain(int argc, _TCHAR* argv[]) { TCHAR *char str = _T("test"); MyTestClass myTestClass; myTestClass.print(str); // 正常に動作 boost::thread myThread(boost::bind(&MyTestClass::print,str)); // ←コンパイルエラー // c:\Program Files\boost\boost_1_47\boost\bind\mem_fn.hpp(333): error C2296: '->*' : 無効な左オペランドです。 } http://echo.5ch.net/test/read.cgi/tech/1275014987/912
913: デフォルトの名無しさん [sage] 2012/04/21(土) 17:52:34.92 >>912 boost::bindでクラスのメンバ関数ポインタを拘束した場合、第一引数はそのクラスのインスタンス(かインスタンスのポインタとか)になる boost::bind(&MyTestClass::print, myTestClass, str) http://echo.5ch.net/test/read.cgi/tech/1275014987/913
914: デフォルトの名無しさん [sage] 2012/04/21(土) 18:08:58.52 >>913 ありがとうございます。無事にコンパイルが通りました。 http://echo.5ch.net/test/read.cgi/tech/1275014987/914
915: デフォルトの名無しさん [sage] 2012/04/21(土) 19:19:10.20 boost::threadを使って、メンバ関数ではなくて、 クラスそのものを別スレッドで動かしたい場合は、どのように指定すればよいでしょうか? http://echo.5ch.net/test/read.cgi/tech/1275014987/915
916: 915 [sage] 2012/04/21(土) 20:04:05.95 boost::threadに渡せるのは関数ポインタだけなのかな? boost::threadにクラスのコンストラクタを渡せば、そのクラスは別スレッドで動いてくれるのかと思ったけど 勘違いでしょうか? http://echo.5ch.net/test/read.cgi/tech/1275014987/916
917: デフォルトの名無しさん [sage] 2012/04/21(土) 20:54:52.22 クラスが動くってなんだ? ・・・って関数オブジェクトのことか? 関数オブジェクトのインスタンスを渡せばそのoperator()を別スレッドで実行させることはできる http://echo.5ch.net/test/read.cgi/tech/1275014987/917
918: デフォルトの名無しさん [sage] 2012/04/21(土) 21:32:08.83 >>916 具体的にどんなコードを書きたいのかここに出したほうが良いと思う。 http://echo.5ch.net/test/read.cgi/tech/1275014987/918
919: 915 [sage] 2012/04/21(土) 21:36:19.05 ウインドウクラスをクラス化したので、 そのクラスを別スレッドにして、プロシージャなどの処理をしたかったんです。 とりあえず、グローバル関数作って、その中でクラスのインスタンスを作って、 boost::threadでそのグローバル関数を呼び出す形にしてみました。 いちいち関数を作るのも面倒なので、無名関数でやってみようかな。 無名関数使ったことないけど。 http://echo.5ch.net/test/read.cgi/tech/1275014987/919
920: デフォルトの名無しさん [sage] 2012/04/22(日) 02:06:07.47 JavaやFlashで使われている、イベント/リスナーをC++で実現したいのですが、 boostを使ってできますでしょうか? http://echo.5ch.net/test/read.cgi/tech/1275014987/920
921: デフォルトの名無しさん [sage] 2012/04/22(日) 02:13:52.12 >>920 イベントはシステム側の要求でとある時に「この処理をどうします?」ってプログラマに聞くことなのでそれは可能。 で、リスナは結局デリゲートかなんかに処理をキックする機構なので、 例えばバインドなどでインスタンス関数をイベントに渡したりしたとして、そのインスタンスの寿命がなくなって無効になるタイミングをコントロール出来れば可能だろう。 と、言うわけでできなくは無いけど、GC無いからそこをどうにかしないと難しいと思う。 http://echo.5ch.net/test/read.cgi/tech/1275014987/921
922: デフォルトの名無しさん [sage] 2012/04/25(水) 18:39:55.58 boost::graphについて質問です。 例えば、RPGゲームのマップ移動の最短経路を求めたいとします。 ただしマップを通過できるかどうかは条件があって、 ・一定のキャラクターレベルを超えていないと通れない ・特定のアイテムを所有していないと通れない などの条件があります。 私の考えたチープなやり方では、propertyでマップノードごとにRequireLevel、RequireItems などを持たせて、 レベルによってグラフノードの書き換えをする関数、 DisableGraphByLevel(graph,characterInfo); アイテムの有無によってグラフノードの書き換えをする関数、 DisableGraphByItem(graph,characterInfo); などを処理してから、グラフに対して最短経路アルゴリズムを実行するという形です。 ただ、これだと処理後に毎回グラフを元に戻さないといけないし、 条件がより複雑なものが追加されるとこの形では対応できません。 それに第一、スマートではありません。 boostっぽく処理するにはどのように設計すればよろしいでしょうか? http://echo.5ch.net/test/read.cgi/tech/1275014987/922
923: やんやん ◆yanyan72E. [sage] 2012/04/26(木) 02:13:10.40 http://www.boost.org/doc/libs/1_49_0/libs/graph/doc/dijkstra_shortest_paths.html これの、distance_mapとか、distance_compareとかdistance_combineとかを うまく定義すれば、グラフを書き換えなくても望みの動作をさせられるんでない? http://echo.5ch.net/test/read.cgi/tech/1275014987/923
924: 922 [sage] 2012/04/27(金) 14:45:37.73 >>923 ありがとうございます。参考にして見ます。 boostを使うだけでなく、boostの中身を理解して、自分でアロケーターだとか イテレーターとか作ってみたいと思っているのですが、 やんやんさんのように高度に詳しくなるには、どういった書籍やサイトがお勧めでしょうか? よろしければ教えてください。 http://echo.5ch.net/test/read.cgi/tech/1275014987/924
925: デフォルトの名無しさん [sage] 2012/04/27(金) 18:41:03.11 document嫁 http://echo.5ch.net/test/read.cgi/tech/1275014987/925
926: デフォルトの名無しさん [sage] 2012/04/27(金) 22:27:30.41 >>905 if (auto i = test() && i.get() != -1) { ↓ auto i = test() && i.get() != -1; ↓ auto n = test() && i.get() != -1; auto i = n; 多少構文をばらしてみれば無理なの解るだろ http://echo.5ch.net/test/read.cgi/tech/1275014987/926
927: デフォルトの名無しさん [sage] 2012/04/27(金) 22:29:18.96 >>920 boost::functionとboost::bindと、なんかブロードキャストするクラスか なんかがあったから、それ組み合わせりゃ楽にできるよ http://echo.5ch.net/test/read.cgi/tech/1275014987/927
928: デフォルトの名無しさん [sage] 2012/04/27(金) 22:43:36.06 >>924 興味があるところから入っていって、もっと知りたいと思ったら勝手に詳しくなるもの http://echo.5ch.net/test/read.cgi/tech/1275014987/928
929: デフォルトの名無しさん [sage] 2012/04/27(金) 23:47:34.23 >>920 boost::signals2はどうだろ http://echo.5ch.net/test/read.cgi/tech/1275014987/929
930: デフォルトの名無しさん [sage] 2012/05/20(日) 00:07:51.46 <boost/thread.hpp>をインクルードすると下記のエラーが出ます。 どうすればいいでしょうか? 開発環境はVC++ 2008/2010 WinXPです ソースコードは http://metalphaeton.blogspot.jp/2011/04/boostthread.html ここにあるものをそのまま使いました 1>c:\program files\boost\boost_1_47\boost\thread\win32\basic_timed_mutex.hpp(160) : warning C4793: boost::detail::basic_timed_mutex::unlock': ネイティブ関数としてコンパイルされました: 1> マネージ コードでサポートされていない組み込み型が見つかりました 1>c:\program files\boost\boost_1_47\boost\thread\win32\thread_primitives.hpp(314) : warning C4793: boost::detail::win32::interlocked_bit_test_and_set': ネイティブ関数としてコンパイルされました: 1> マネージ コードでサポートされていない組み込み型が見つかりました 1>main.obj : warning LNK4248: 未解決の typeref トークン (0100001F) ('boost.detail.win32._SECURITY_ATTRIBUTES') です。イメージを実行できません。 http://echo.5ch.net/test/read.cgi/tech/1275014987/930
931: デフォルトの名無しさん [sage] 2012/05/20(日) 00:31:14.34 >>930 本当にC++ですか? http://echo.5ch.net/test/read.cgi/tech/1275014987/931
932: デフォルトの名無しさん [sage] 2012/05/20(日) 07:07:29.09 >>930 C++/CLIはC++じゃありません http://echo.5ch.net/test/read.cgi/tech/1275014987/932
933: デフォルトの名無しさん [sage] 2012/05/21(月) 12:40:42.28 C++/CLIではthreadはうまく動かない 昔いろいろやってコンパイルだけはできるようになったけど、結局動くことはなかった http://echo.5ch.net/test/read.cgi/tech/1275014987/933
934: デフォルトの名無しさん [sage] 2012/05/21(月) 13:07:13.78 C++/CLIはスレッド出来る。.NETとおなじ機能。 C#でも不可能と言うことになる。 http://echo.5ch.net/test/read.cgi/tech/1275014987/934
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 47 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s