diff options
Diffstat (limited to 'Source/cmPropertyDefinitionMap.cxx')
-rw-r--r-- | Source/cmPropertyDefinitionMap.cxx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Source/cmPropertyDefinitionMap.cxx b/Source/cmPropertyDefinitionMap.cxx index f752ed7..614d5a4 100644 --- a/Source/cmPropertyDefinitionMap.cxx +++ b/Source/cmPropertyDefinitionMap.cxx @@ -2,20 +2,20 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmPropertyDefinitionMap.h" +#include <tuple> #include <utility> -void cmPropertyDefinitionMap::DefineProperty(const std::string& name, - cmProperty::ScopeType scope, - const char* ShortDescription, - const char* FullDescription, - bool chain) +void cmPropertyDefinitionMap::DefineProperty( + const std::string& name, cmProperty::ScopeType scope, + const std::string& ShortDescription, const std::string& FullDescription, + bool chain) { auto it = this->find(name); - cmPropertyDefinition* prop; if (it == this->end()) { - prop = &(*this)[name]; - prop->DefineProperty(name, scope, ShortDescription, FullDescription, - chain); + // try_emplace() since C++17 + this->emplace(std::piecewise_construct, std::forward_as_tuple(name), + std::forward_as_tuple(name, scope, ShortDescription, + FullDescription, chain)); } } |