mirror of
https://github.com/KeqingMoe/argparse.git
synced 2025-07-04 15:14:39 +00:00
Use auto type for iterators
This commit is contained in:
parent
328f1048da
commit
89e4bb11ac
@ -52,9 +52,7 @@ struct is_specialization<Ref<Args...>, Ref> : std::true_type {};
|
|||||||
// Upsert into std::map
|
// Upsert into std::map
|
||||||
template <class KeyType, class ElementType>
|
template <class KeyType, class ElementType>
|
||||||
bool upsert(std::map<KeyType, ElementType>& aMap, KeyType const& aKey, ElementType const& aNewValue) {
|
bool upsert(std::map<KeyType, ElementType>& aMap, KeyType const& aKey, ElementType const& aNewValue) {
|
||||||
typedef typename std::map<KeyType, ElementType>::iterator Iterator;
|
auto tResult = aMap.insert(typename std::map<KeyType, ElementType>::value_type(aKey, aNewValue));
|
||||||
typedef typename std::pair<Iterator, bool> Result;
|
|
||||||
Result tResult = aMap.insert(typename std::map<KeyType, ElementType>::value_type(aKey, aNewValue));
|
|
||||||
if (!tResult.second) {
|
if (!tResult.second) {
|
||||||
if (!(tResult.first->second == aNewValue)) {
|
if (!(tResult.first->second == aNewValue)) {
|
||||||
tResult.first->second = aNewValue;
|
tResult.first->second = aNewValue;
|
||||||
@ -360,7 +358,7 @@ class ArgumentParser {
|
|||||||
typename std::enable_if<is_specialization<T, std::vector>::value == false &&
|
typename std::enable_if<is_specialization<T, std::vector>::value == false &&
|
||||||
is_specialization<T, std::list>::value == false, T>::type
|
is_specialization<T, std::list>::value == false, T>::type
|
||||||
get(const char * aArgumentName) {
|
get(const char * aArgumentName) {
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator = mArgumentMap.find(aArgumentName);
|
auto tIterator = mArgumentMap.find(aArgumentName);
|
||||||
if (tIterator != mArgumentMap.end()) {
|
if (tIterator != mArgumentMap.end()) {
|
||||||
return tIterator->second->get<T>();
|
return tIterator->second->get<T>();
|
||||||
}
|
}
|
||||||
@ -371,7 +369,7 @@ class ArgumentParser {
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
typename std::enable_if<is_specialization<T, std::vector>::value, T>::type
|
typename std::enable_if<is_specialization<T, std::vector>::value, T>::type
|
||||||
get(const char * aArgumentName) {
|
get(const char * aArgumentName) {
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator = mArgumentMap.find(aArgumentName);
|
auto tIterator = mArgumentMap.find(aArgumentName);
|
||||||
if (tIterator != mArgumentMap.end()) {
|
if (tIterator != mArgumentMap.end()) {
|
||||||
return tIterator->second->get_vector<T>();
|
return tIterator->second->get_vector<T>();
|
||||||
}
|
}
|
||||||
@ -382,7 +380,7 @@ class ArgumentParser {
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
typename std::enable_if<is_specialization<T, std::list>::value, T>::type
|
typename std::enable_if<is_specialization<T, std::list>::value, T>::type
|
||||||
get(const char * aArgumentName) {
|
get(const char * aArgumentName) {
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator = mArgumentMap.find(aArgumentName);
|
auto tIterator = mArgumentMap.find(aArgumentName);
|
||||||
if (tIterator != mArgumentMap.end()) {
|
if (tIterator != mArgumentMap.end()) {
|
||||||
return tIterator->second->get_list<T>();
|
return tIterator->second->get_list<T>();
|
||||||
}
|
}
|
||||||
@ -392,7 +390,7 @@ class ArgumentParser {
|
|||||||
// Indexing operator. Return a reference to an Argument object
|
// Indexing operator. Return a reference to an Argument object
|
||||||
// Used in conjuction with Argument.operator== e.g., parser["foo"] == true
|
// Used in conjuction with Argument.operator== e.g., parser["foo"] == true
|
||||||
Argument& operator[](const std::string& aArgumentName) {
|
Argument& operator[](const std::string& aArgumentName) {
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator = mArgumentMap.find(aArgumentName);
|
auto tIterator = mArgumentMap.find(aArgumentName);
|
||||||
if (tIterator != mArgumentMap.end()) {
|
if (tIterator != mArgumentMap.end()) {
|
||||||
return *(tIterator->second);
|
return *(tIterator->second);
|
||||||
}
|
}
|
||||||
@ -474,7 +472,7 @@ class ArgumentParser {
|
|||||||
private:
|
private:
|
||||||
// If the argument was defined by the user and can be found in mArgumentMap, then it's valid
|
// If the argument was defined by the user and can be found in mArgumentMap, then it's valid
|
||||||
bool is_valid_argument(const std::string& aName) {
|
bool is_valid_argument(const std::string& aName) {
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator = mArgumentMap.find(aName);
|
auto tIterator = mArgumentMap.find(aName);
|
||||||
return (tIterator != mArgumentMap.end());
|
return (tIterator != mArgumentMap.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,8 +493,7 @@ class ArgumentParser {
|
|||||||
print_help();
|
print_help();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
std::map<std::string, std::shared_ptr<Argument>>::iterator tIterator =
|
auto tIterator = mArgumentMap.find(argv[i]);
|
||||||
mArgumentMap.find(argv[i]);
|
|
||||||
if (tIterator != mArgumentMap.end()) {
|
if (tIterator != mArgumentMap.end()) {
|
||||||
// Start parsing optional argument
|
// Start parsing optional argument
|
||||||
auto tArgument = tIterator->second;
|
auto tArgument = tIterator->second;
|
||||||
|
Loading…
Reference in New Issue
Block a user