- Win32API質問箱 Build118
787 :デフォルトの名無しさん[sage]:2014/11/18(火) 02:02:15.90 ID:5SkfsGvC - Win64apiは有るのか?
|
- Win32API質問箱 Build118
789 :デフォルトの名無しさん[sage]:2014/11/18(火) 04:12:57.06 ID:5SkfsGvC - >>788
どういうことだよ。 Win32APIに有る関数をWin64で使ったら、 64ビットプログラムは、32ビットのAPIを呼び出すのか? よくわからん。
|
- C++相談室 part114
543 :デフォルトの名無しさん[sage]:2014/11/18(火) 06:12:02.52 ID:5SkfsGvC - #include <future>
#include <thread> #include <iostream> class MyClass{ public: int m_x, m_y; MyClass(int x, int y){ this->m_x = x; this->m_y = y; } int add(){ return m_x + m_y; } }; template<class C> int func2(C &mc){ return z = mc.add(); } void main(){ MyClass mc(10, 20); std::packaged_task<int(MyClass)> tsk(func2); // このあたりの書き方が std::future<int> ret = tsk.get_future(); std::thread th = std::thread(std::move(tsk), mc); // 分りません。 int z = ret.get(); printf("z = %d\n", z); th.join(); } std::threadでテンプレート関数func2を呼び出すことは可能でしょうか? ググってもさっぱり分らないので教えて下さい。よろしく。
|
- C++相談室 part114
544 :デフォルトの名無しさん[sage]:2014/11/18(火) 06:55:44.18 ID:5SkfsGvC - 訂正
誤 return z = mc.add(); 正 return mc.add();
|
- C++相談室 part114
546 :デフォルトの名無しさん[sage]:2014/11/18(火) 08:21:21.36 ID:5SkfsGvC - レス有難うございました。
書くのを忘れていたのですが、使っているのはVS2013のC++なんですが、 545さんのコードを入れたら IntelliSense: クラス テンプレート "std::packaged_task" の引数リストがありません というエラーになります。
|
- VB.NET質問スレ(Part41)
859 :デフォルトの名無しさん[sage]:2014/11/18(火) 10:40:03.29 ID:5SkfsGvC - >>855
MSDNの回答者には攻撃的な人が数名いますね。逆にとっても感じのいい人もいますが。 変な質問ならほっとけば良いのに。
|
- C++相談室 part114
549 :デフォルトの名無しさん[sage]:2014/11/18(火) 17:40:06.80 ID:5SkfsGvC - みなさんレスありがとうございました。
547さんの方法で上手く行きました。 その後、良く分らないまま試行錯誤していたら、二か所の&が有っても無くてもVS2013 C++では実行できたのですが、 std::packaged_task<int(MyClass &)> tsk(&func2<MyClass>); // このあたりの書き方が(1) 547さんオリジナル std::packaged_task<int(MyClass &)> tsk(func2<MyClass>); // このあたりの書き方が(2) std::packaged_task<int(MyClass)> tsk(&func2<MyClass>); // このあたりの書き方が(3) std::packaged_task<int(MyClass)> tsk(func2<MyClass>); // このあたりの書き方が(4) (1)以外はたまたま動いたということでしょうか?なお、(2)(4)は IntelliSense: コンストラクター "std::packaged_task<_Ret (_ArgTypes...)>::packaged_task [代入_Ret=int, _ArgTypes=<MyClass &>]" のインスタンスが引数リストと一致しません 引数の型: (<unknown-type>) みたいな警告が出ますが、実行できます。 threadって難しいですね。さっぱりわからない。 548さんの方法ではVS2013C++ではエラーでビルドできませんでした。 error C2664: 'void std::packaged_task<int (MyClass &&)>::operator ()(MyClass &&)' : 引数 1 を 'MyClass' から 'MyClass &&' へ変換できません。 c:\program files (x86)\microsoft visual studio 12.0\vc\include\xrefwrap 58 1 とにかくいろいろありがとうございました。
|