diff options
Diffstat (limited to 'Source/cmPolicies.h')
-rw-r--r-- | Source/cmPolicies.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index 46b725a..63376dd 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -14,6 +14,8 @@ #include "cmCustomCommand.h" +#include <bitset> + class cmMakefile; class cmPolicy; @@ -268,12 +270,20 @@ public: static std::string GetRequiredAlwaysPolicyError(cmPolicies::PolicyID id); /** Represent a set of policy values. */ - struct PolicyMap : private std::map<PolicyID, PolicyStatus> + struct PolicyMap { + PolicyMap(); PolicyStatus Get(PolicyID id) const; void Set(PolicyID id, PolicyStatus status); bool IsDefined(PolicyID id) const; bool IsEmpty() const; + + private: + std::bitset<cmPolicies::CMPCOUNT> UNDEFINED; + std::bitset<cmPolicies::CMPCOUNT> OLD; + std::bitset<cmPolicies::CMPCOUNT> NEW; + std::bitset<cmPolicies::CMPCOUNT> REQUIRED_IF_USED; + std::bitset<cmPolicies::CMPCOUNT> REQUIRED_ALWAYS; }; }; |