cmDepends: Define DependencyMap instead of DependencyVector

In `cmDepends` use
`typedef std::map<std::string, std::vector<std::string>> DependencyMap`
instead of defining a
`class DependencyVector : public std::vector<std::string>`
and using it in `std::map<std::string, DependencyVector>`.

Since `std::map<std::string, std::vector<std::string>>` is used in various
other places, we now reuse all of it's auto generated methods.  This doesn't
happen when we use `DependencyVector` in a `std::map`, because it is a
different class than `std::vector<std::string>`.
This commit is contained in:
Sebastian Holtermann
2019-03-27 15:50:17 +01:00
parent 5a15c9e7cb
commit 87341d8328
8 changed files with 28 additions and 36 deletions

View File

@@ -8,7 +8,6 @@
#include "cmDepends.h"
#include <iosfwd>
#include <map>
#include <set>
#include <string>
@@ -33,9 +32,9 @@ protected:
bool WriteDependencies(const std::set<std::string>& sources,
const std::string& file, std::ostream& makeDepends,
std::ostream& internalDepends) override;
bool CheckDependencies(
std::istream& internalDepends, const std::string& internalDependsFileName,
std::map<std::string, DependencyVector>& validDeps) override;
bool CheckDependencies(std::istream& internalDepends,
const std::string& internalDependsFileName,
DependencyMap& validDeps) override;
};
#endif