C++?????????????
???????????? ???????[ 2013/3/25 13:45:10 ] ????????
????????
?????????????????C++?????????????C++??????native code???Ч??????????????????C++??????????????з???ж???? ????????????????????????????????????????????????????????????????????C++????????????????????????θ?????????????????????????????????????????????????????????????????????????????????????????????????3???????????????bug???????′?????????????????????????????????????ζ????????
???????????api??????????????????linux????windows????????c???????????????????????????????ü??ɡ???????????????????????????????????????н???????????????Щ????????????????????????????ū?????????????????????????????ɡ?
??????????е???壺
??????????ж?????????????????????????????????????????????????????????????檔???????????????????????????????????????壬???????????????ж?????????????????????????????????????????????????????????С?????????????????£?
???????????????????????A?????B???????????????磬????? ?????????????????y?顣
??????????е?????
????????????
????????????????????????????????????????????????????????????????????????????????????????С?????????????ò???????????????????????????????????????????У????????????????“????”??????????????????????????????????????????????void (void*) ????????????void* ?????????????????????????task_t???????????????task_t??????
???????????
class task_impl_i
{
public:
virtual ~task_impl_i(){}
virtual void run() = 0;
virtual task_impl_i* fork() = 0;
};
class task_impl_t: public task_impl_i
{
public:
task_impl_t(task_func_t func_?? void* arg_):
m_func(func_)??
m_arg(arg_)
{}
virtual void run()
{
m_func(m_arg);
}
virtual task_impl_i* fork()
{
return new task_impl_t(m_func?? m_arg);
}
protected:
task_func_t m_func;
void* m_arg;
};
struct task_t
{
static void dumy(void*){}
task_t(task_func_t f_?? void* d_):
task_impl(new task_impl_t(f_?? d_))
{
}
task_t(task_impl_i* task_imp_):
task_impl(task_imp_)
{
}
task_t(const task_t& src_):
task_impl(src_.task_impl->fork())
{
}
task_t()
{
task_impl = new task_impl_t(&task_t::dumy?? NULL);
}
~task_t()
{
delete task_impl;
}
task_t& operator=(const task_t& src_)
{
delete task_impl;
task_impl = src_.task_impl->fork();
return *this;
}
void run()
{
task_impl->run();
}
task_impl_i* task_impl;
};
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11