Merhabalar,
void test(int x,char y,bool z){
std::cout << x<<" "<<y<<" "<<z<<std::endl;
}
class MakeThread {
public:
template<typename callable, typename = std::enable_if<std::is_function<T>::value>,typename... arg>
static auto run(bool isVoid,callable foo,arg&& ...args)->decltype(callable(std::forward(args))){
std::function<typename std::result_of<T(arg...)>::type()>task
(std::bind(std::forward<T>(foo), std::forward<arg>(args)...));
if (isVoid) {
std::thread([task]{
task();
}).detach();
}
else {
std::future fut= std::async(std::launch::async, task);
return fut.get();
}
}
private:
/*static std::mutex mtx;
std::condition_variable cv;
std::future<bool> fut;
bool ready;*/
};
int main(){
MakeThread::run(false,test, 15,'a', true);
}
Burada hatanın ne olduğunu bir türlü anlayamadım. Yardımcı olursanız çok sevinirim :)
Edit: Aldığım Hatayı eklemeyi unumuşum. '"no instance of function template "MakeThread::run" matches the argument list MemoryAlloctor"'
İyi Çalışmalar
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]