Entschuldigung, wenn dies ein Duplikat ist .. Hoffentlich ist es nicht. Ich durchsuchte eine lange Liste von Fragen, aber sie alle schienen es nicht wirklich zu erklären.Den rohen Zeiger von einem intelligenten Zeiger erhalten
Hier geht: Im follwoing
int main(int,char**){
auto a = make_unique<std::string>("Hello World");
// do stuff with either &*a or a.get()
return 0;
}
gibt es einen Unterschied zwischen &*a
und a.get()
? Ich weiß, dass beide den rohen Zeigerwert zurückgeben (es sei denn ist überladen), aber gibt es irgendwelche Laufzeitvorteile, um den anderen zu wählen?
'& * a' ist undefiniertes Verhalten, wenn der rohe Zeiger nullptr ist. –
Wäre "& * a" nicht einfach 0, wenn "a" "nullptr" wäre? – Born2Smile
bevorzugen "Get", das ist, wofür es ist, deutlicher vermittelt Absicht, und ist leichter zu lesen – sp2danny