Можно ли и как вызвать шаблонную функцию-член класса с помощью std::async (желательно без использования std::bind)? Пожалуйста, объясните, разрешает ли стандарт C++11 или C++14 такой вызов вообще и как заставить его работать в MSVS2013 в частности.
#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.
и никакой другой информации. - 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