auto_ptr для массивов
Короче говоря, мне интересно, существует ли тип auto_ptr для массивов. Я знаю, что могу кататься самостоятельно, я просто проверяю, что там уже ничего нет.
Я знаю и о векторах. однако я не думаю, что смогу их использовать. Я использую несколько API / SDK для Windows, таких как Windows Media SDK, Direct Show API, которые для возврата некоторых структур вызывают функцию, которая принимает указатель и размер дважды. Первый раз, когда в качестве указателя возвращается NULL, чтобы вернуть размер структуры, которую я должен выделить для получения данных, которые я ищу. Например:
<code>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; </code>
Поскольку cbType обычно возвращается больше, чем sizeof (WM_MEDIA_TYPE), поскольку в нем есть указатель на другую структуру, я не могу просто выделить объекты WM_MEDIA_TYPE. Есть ли что-нибудь подобное?