本文整理汇总了C++中smart_ptr::get方法的典型用法代码示例。如果您正苦于以下问题:C++ smart_ptr::get方法的具体用法?C++ smart_ptr::get怎么用?C++ smart_ptr::get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类smart_ptr
的用法示例。
在下文中一共展示了smart_ptr::get方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
template<class T, class U> inline bool operator!=(smart_ptr<T> & a, smart_ptr<U> & b)
{
return a.get() != b.get();
}
示例2: swap
inline void swap (smart_ptr<T> &pt,
smart_ptr<T> &pt2)
{
typename smart_ptr<T>::value_type *ptr = pt.get();
pt = pt2;
pt2 = ptr;
}
示例3:
inline std::ptrdiff_t operator- (const smart_ptr<T> &pt, const smart_ptr<T2> &pt2)
{ return pt.get()- pt2.get(); }
示例4: uiRunExe
bool uiRunExe(wxFrame* parent,const wxString& path,const wxString& labelOutput, wxWindow* progressDialog,smart_ptr<InterfLogger> extLogger)
{
_("Elapsed time : ");
_("Remaining time : ");
_("Close");
_("Cancel");
_("unknown");
wxProgressDialog * progDialog=wxDynamicCast(progressDialog,wxProgressDialog);
bool hasOutput=true;
processManager* process = new processManager(parent,path);
if(extLogger.get()!=NULL)
process->AddLogger(extLogger);
wxLogInfo(_("Execution d'un programme externe :"));
wxLogInfo(path);
int processId=wxExecute(path,wxEXEC_ASYNC,process);
if(!processId)
{
wxLogInfo("L'execution du programme a échoué");
delete process;
return false;
}
float percFinish=0;
wxDateTime lastProgShow=wxDateTime::UNow();
while(process->IsRunning())
{
hasOutput=true;
wxMilliSleep(50);
while(hasOutput) //&& (!progDialog || progDialog->Update(percFinish*100))
{
process->LogOutput(hasOutput,labelOutput,&percFinish);
}
if(wxDateTime::UNow().GetValue()-lastProgShow.GetValue()>500)
{
lastProgShow=wxDateTime::UNow();
if(parent)
parent->Update();
if(percFinish>99.f)
percFinish=99;
if(progDialog && !progDialog->Update(percFinish*100))
{
wxKillError killerror=wxProcess::Kill(processId,wxSIGKILL);
wxLogInfo(_("Execution du programme externe annulé."));
wxLogInfo(_("Réponse du processus :"));
switch(killerror)
{
case wxKILL_OK: // no error
wxLogInfo(_("Pas d'erreur."));
break;
case wxKILL_BAD_SIGNAL: // no such signal
wxLogError(_("Le signal n'existe pas."));
break;
case wxKILL_ACCESS_DENIED: // permission denied
wxLogError(_("Fermeture du processus non autorisée."));
break;
case wxKILL_NO_PROCESS: // no such process
wxLogError(_("Ce processus n'existe pas."));
break;
case wxKILL_ERROR : // another, unspecified error
wxLogError(_("Retour du processus non spécifié"));
break;
default:
wxLogError(_("Retour du processus inconnue"));
break;
}
//Si on supprime le processus maintenant on aura une erreur
//Si on ne le supprime pas il y a une fuite mémoire
//delete process;
return false;
}
}
}
// On récupère les derniers messages
wxMilliSleep(150);
process->LogOutput(hasOutput,labelOutput,&percFinish);
while(hasOutput)
process->LogOutput(hasOutput,labelOutput,&percFinish);
delete process;
return true;
}
示例5: bar
void bar(smart_ptr p) {
delete p.get(); // expected-note{{Memory is released}}
p.get()->foo(); // expected-note{{Calling 'smart_ptr::get'}}
}
示例6:
friend bool operator!= (const smart_ptr &left, nullptr_t)
{
return left.get() != nullptr;
}