Kurz gesagt, ich frage mich, wenn es eine auto_ptr wie Typ für Arrays. Ich weiß, ich könnte meine eigenen rollen, ich bin nur sicher, dass es nicht bereits etwas da draußen ist.
Ich kenne mich auch mit Vektoren aus, aber ich glaube nicht, dass ich sie verwenden kann. Ich verwende mehrere der Windows-APIs/SDKs wie das Windows Media SDK, Direct Show API, die, um einige Strukturen zurück zu bekommen, eine Funktion aufrufen, die einen Zeiger und eine Größe zweimal nimmt. Beim ersten Mal wird NULL als Zeiger übergeben, um die Größe der Struktur zurückzubekommen, die ich zuweisen muss, um die gesuchten Daten zu erhalten. Zum Beispiel:
CComQIPtr<IWMMediaProps> pProps(m_pStreamConfig);
DWORD cbType = 0;
WM_MEDIA_TYPE *pType = NULL;
hr = pProps->GetMediaType(NULL, &cbType);
CHECK_HR(hr);
pType = (WM_MEDIA_TYPE*)new BYTE[cbType]; // Would like to use auto_ptr instread
hr = pProps->GetMediaType(pType, &cbType);
CHECK_HR(hr);
// ... do some stuff
delete[] pType;
Da cbType typischerweise größer als sizeof(WM_MEDIA_TYPE) aufgrund der Tatsache zurückkommt, ist ein Zeiger auf eine andere Struktur in ihm hat, kann ich nicht einfach WM_MEDIA_TYPE-Objekte zuweisen. Gibt es etwas wie dieses da draußen?