|
Boost Users : |
Subject: Re: [Boost-users] Scoped_array with constructors?
From: Nikolai N Fetissov (nikolai-boost_at_[hidden])
Date: 2009-04-21 09:47:46
Samuel,
I don't see any explicit reference to scoped_ptr in your code,
so assuming you are trying to use std::vector<boost::scoped_ptr<X> >.
This doesn't work since, quoting documentations, "It has been suggested
that scoped_ptr<T> is equivalent to std::auto_ptr<T> const."
Using shared_ptr instead might or might not fit your needs, depending
on whether you are OK with cost of reference counting.
Best,
-- Nikolai > Hi Samuel, > > Assuming m_textureUnits is a std::vector, have you tried to use > m_textureUnits.reserve instead of resize ? I think that could solve your > issue. Then you might also want to consider to use > m_textureUnits.push_back > instead of m_textureUnits[i]. > > Kind regards > > Rune > > On Tue, Apr 21, 2009 at 12:05 PM, Space Ship Traveller < > space.ship.traveller_at_[hidden]> wrote: > >> 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 >> >> _______________________________________________ >> Boost-users mailing list >> Boost-users_at_[hidden] >> http://lists.boost.org/mailman/listinfo.cgi/boost-users >> > _______________________________________________ > Boost-users mailing list > Boost-users_at_[hidden] > http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net