mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add List::resize_unsafe(label)
- changes the addressed list size without affecting list allocation. Can be useful for the following type of coding pattern: - pre-allocate a List with some max content length - populate with some content (likely not the entire pre-allocated size) - truncate the list to the length of valid content - process the List - discard the List Since the List is being discarded, using resize_unsafe() instead of resize() avoids an additional allocation with the new size and copying/moving of the elements. This programming pattern can also be used when the List is being returned from a subroutine, and carrying about a bit of unused memory is less important than avoiding reallocation + copy/move. If used improperly, it can obviously result in addressing into unmanaged memory regions (ie, 'unsafe').
This commit is contained in:
committed by
Andrew Heather
parent
0f53871fd3
commit
96c9bf8615
@ -169,8 +169,17 @@ int main(int argc, char *argv[])
|
||||
Info<<" " << *iter;
|
||||
}
|
||||
Info<< nl;
|
||||
}
|
||||
|
||||
Info<< "data:" << Foam::name(ident.cdata())
|
||||
<< " size:" << ident.size() << nl;
|
||||
|
||||
|
||||
Info<< "resize_unsafe(10)" << nl;
|
||||
ident.resize_unsafe(10);
|
||||
|
||||
Info<< "data:" << Foam::name(ident.cdata())
|
||||
<< " size:" << ident.size() << nl;
|
||||
}
|
||||
|
||||
if (false)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user