Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

std::vector<int> allocated and freed on the stack will allocate an array for its int’s on the heap…




I've heard that MSVC does (did?) that, but if so that's an MSVC problem. gcc and clang don't do that.

https://godbolt.org/z/nasoWeq5M


WDYM? Vector is an abstraction over dynamically sized arrays so sure it does use heap to store its elements.

I think usefulcat interpreted "std::vector<int> allocated and freed on the stack" as creating a default std::vector<int> and then destroying it without pushing elements to it. That's what their godbolt link shows, at least, though to be fair MSVC seems to match the described GCC/Clang behavior these days.

Sure, but my point was that RAII doesn't need to involve the heap. Another example would be acquiring abd releasing a mutex.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: