Apakah mungkin dan bagaimana cara memanggil fungsi anggota templat suatu kelas menggunakan std::async (sebaiknya tanpa menggunakan std::bind)? Tolong jelaskan jika standar C++11 atau C++14 mengizinkan panggilan seperti itu secara umum dan bagaimana membuatnya berfungsi di MSVS2013 pada khususnya.
#include <future>
template<typename T> void non_member_template(T val) {}
struct X
{
void member_non_template(int val) {}
template<typename T> void member_template(T val) {}
void call()
{
int val = 123;
std::async(std::launch::async, &non_member_template<int>, val); // ok
std::async(std::launch::async, &X::member_non_template, this, val); // ok
std::async(std::launch::async, &X::member_template<int>, this, val); // error
}
};
int main()
{
X x;
x.call();
}
MSB6006: "CL.exe" exited with code 1.
dan tidak ada informasi lainnya. - person derpface   schedule 16.01.2015std::async(std::launch::async, (void(X::*)(int))&X::member_template<int>, this, val);
- person Axalo   schedule 17.01.2015