summaryrefslogtreecommitdiffstats
path: root/Source/cmPolicies.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmPolicies.h')
-rw-r--r--Source/cmPolicies.h12
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;
};
};