Replace std::make_pair with std::pair CTAD (#7405)

This commit is contained in:
Tyler Veness
2024-11-17 20:29:23 -08:00
committed by GitHub
parent b4bec566f0
commit a04c40f589
18 changed files with 64 additions and 30 deletions

View File

@@ -0,0 +1,35 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#pragma once
#include <algorithm>
#include <array>
#include <cstddef>
#include <stdexcept>
#include <utility>
namespace wpi {
template <typename Key, typename Value, size_t Size>
class ct_map {
constexpr ct_map();
[[nodiscard]]
constexpr const Value& operator[](const Key& key) const {
if (const auto it =
std::find_if(data.begin(), data.end(),
[&key](const auto& v) { return v.first == key; });
it != data.end()) {
return it->second;
} else {
throw std::range_error("Not found");
}
}
private:
std::array<std::pair<Key, Value>, Size> data;
};
} // namespace wpi

View File

@@ -29,7 +29,7 @@ class interpolating_map {
* @param value The value.
*/
void insert(const Key& key, const Value& value) {
m_container.insert(std::make_pair(key, value));
m_container.insert(std::pair{key, value});
}
/**
@@ -39,7 +39,7 @@ class interpolating_map {
* @param value The value.
*/
void insert(Key&& key, Value&& value) {
m_container.insert(std::make_pair(key, value));
m_container.insert(std::pair{key, value});
}
/**