Codechange: [core] Implement SmallVector using std::vector

The public and protected interface to SmallVector are unchanged
SmallVector now requires that items be default constructible
This isn't an issue since some contained items were previously created
uninitialized.

Temporary default constructors are added to the following structs
- SmallPair
- SmallStackItem
- GRFPresence

Where vector<bool> is required, transition immediately to std::vector
to avoid returning proxy object references.
This commit is contained in:
Henry Wilson
2018-09-20 22:41:43 +01:00
committed by PeterN
parent 7a32cf1401
commit 4b349c0f90
7 changed files with 90 additions and 116 deletions

View File

@@ -178,6 +178,7 @@ struct GRFPresence{
bool was_missing; ///< Grf was missing during some gameload in the past
GRFPresence(const GRFConfig *gc) : gc(gc), was_missing(false) {}
GRFPresence() = default;
};
typedef SmallMap<uint32, GRFPresence> GrfIDMapping;