Hi, I want to use scoped_ptr with std::vector or scoped_array, but the problem is that the type I want to allocate has a non-trivial constructor. What is the standard way to make this work? My current best guess is to use std::vector with boost::scoped_ptr in the following way: TextureUnitsController::TextureUnitsController () { GLint textureUnitCount = 1; glGetIntegerv(GL_MAX_TEXTURE_UNITS, &textureUnitCount); m_textureUnits.resize(textureUnitCount); for (unsigned i = 0; i < textureUnitCount; i += 1) { m_textureUnits[i].reset(new TextureUnit(GL_TEXTURE0 + i)); } std::cerr << "Found " << textureUnitCount << " texture units..." << std::endl; } But this doesn't work because scoped_ptr also has a non-trivial constructor, so resize fails. Thanks Samuel