64,648
社区成员
发帖
与我相关
我的任务
分享
void CDlgMapFind::SearchGeomotry( LPCTSTR lpszGeometry )
{
function<void(SEARCHPROGRESS)> callback = bind(&CDlgMapFind::ProcessCallBack, this, placeholders::_1);
m_pMapHelper->StartSearchFeatures( lpszGeometry, m_vecChecks, callback );
}
void CMapHelperBase::StartSearchFeatures( LPCTSTR featureName, const std::vector<int> &vecLayers, std::function<void(SEARCHPROGRESS&)> callback )
{
m_searchParam.featureName = featureName;
m_searchParam.vecLayers = vecLayers;
m_searchParam.callback = callback;
m_thSearchFeatures.SetThreadProc( bind(&CMapHelperBase::SearchFeatures, this, _1, _2), NULL );
m_thSearchFeatures.Start();
}
void CThread::SetThreadProc( std::function<unsigned (CThread*, void*)> funThread, LPVOID lpParam )
{
m_funThread = funThread;
m_pParam = lpParam;
}
namespace test8
{
//http://bbs.csdn.net/topics/390353882
struct Observee
{
void Register(std::function<void(int)> callback)
{
callback_ = callback;
}
std::function<void(int)> callback_;
};
struct Observer
{
void ProcessCallBack(int){}
void DoRegister(Observee* ob)
{
function<void(int)> callback = bind1st(mem_fun(&Observer::ProcessCallBack), this);
ob->Register(callback);
}
};
void test()
{
Observee* ob = new Observee;
Observer* c1 = new Observer;
c1->DoRegister(ob);
delete c1;
delete ob;
}
}