- Timestamp:
- Dec 28, 2015, 11:22:21 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/cpp11_v2/src/libraries/core/class/IdentifierManager.cc
r10916 r10988 60 60 61 61 this->identifiers_.insert(identifier); 62 this->identifierByTypeIndex_[identifier->getTypeInfo()] = identifier; 62 63 this->identifierByString_[identifier->getName()] = identifier; 63 64 this->identifierByLowercaseString_[getLowercase(identifier->getName())] = identifier; … … 71 72 { 72 73 this->identifiers_.erase(identifier); 74 this->identifierByTypeIndex_.erase(identifier->getTypeInfo()); 73 75 this->identifierByString_.erase(identifier->getName()); 74 76 this->identifierByLowercaseString_.erase(getLowercase(identifier->getName())); … … 258 260 Identifier* IdentifierManager::getIdentifierByTypeInfo(const std::type_info& typeInfo) 259 261 { 260 // TODO: use std::type_index and a map to find identifiers by type_info (only with c++11)261 for (Identifier* identifer : this->identifiers_)262 if (identifer->getTypeInfo() == typeInfo)263 return identifer;264 return nullptr;262 auto it = this->identifierByTypeIndex_.find(typeInfo); 263 if (it != this->identifierByTypeIndex_.end()) 264 return it->second; 265 else 266 return nullptr; 265 267 } 266 268
Note: See TracChangeset
for help on using the changeset viewer.