xref: /netbsd-src/external/gpl3/gdb.old/dist/gdbsupport/def-vector.h (revision 6881a4007f077b54e5f51159c52b9b25f57deb0d)
1*6881a400Schristos /* Copyright (C) 2017-2023 Free Software Foundation, Inc.
27d62b00eSchristos 
37d62b00eSchristos    This file is part of GDB.
47d62b00eSchristos 
57d62b00eSchristos    This program is free software; you can redistribute it and/or modify
67d62b00eSchristos    it under the terms of the GNU General Public License as published by
77d62b00eSchristos    the Free Software Foundation; either version 3 of the License, or
87d62b00eSchristos    (at your option) any later version.
97d62b00eSchristos 
107d62b00eSchristos    This program is distributed in the hope that it will be useful,
117d62b00eSchristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
127d62b00eSchristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
137d62b00eSchristos    GNU General Public License for more details.
147d62b00eSchristos 
157d62b00eSchristos    You should have received a copy of the GNU General Public License
167d62b00eSchristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
177d62b00eSchristos 
187d62b00eSchristos #ifndef COMMON_DEF_VECTOR_H
197d62b00eSchristos #define COMMON_DEF_VECTOR_H
207d62b00eSchristos 
217d62b00eSchristos #include <vector>
227d62b00eSchristos #include "gdbsupport/default-init-alloc.h"
237d62b00eSchristos 
247d62b00eSchristos namespace gdb {
257d62b00eSchristos 
267d62b00eSchristos /* A vector that uses an allocator that default constructs using
277d62b00eSchristos    default-initialization rather than value-initialization.  The idea
287d62b00eSchristos    is to use this when you don't want zero-initialization of elements
297d62b00eSchristos    of vectors of trivial types.  E.g., byte buffers.  */
307d62b00eSchristos 
317d62b00eSchristos template<typename T> using def_vector
327d62b00eSchristos   = std::vector<T, gdb::default_init_allocator<T>>;
337d62b00eSchristos 
347d62b00eSchristos } /* namespace gdb */
357d62b00eSchristos 
367d62b00eSchristos #endif /* COMMON_DEF_VECTOR_H */
37