forked from boostorg/unordered
Add at_tests
This commit is contained in:
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include <initializer_list>
|
#include <initializer_list>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
#include <stdexcept>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
@ -287,6 +288,27 @@ namespace boost {
|
|||||||
/// Lookup
|
/// Lookup
|
||||||
///
|
///
|
||||||
|
|
||||||
|
mapped_type& at(key_type const& key)
|
||||||
|
{
|
||||||
|
auto pos = table_.find(key);
|
||||||
|
if (pos != table_.end()) {
|
||||||
|
return pos->second;
|
||||||
|
}
|
||||||
|
// TODO: someday refactor this to conditionally serialize the key and
|
||||||
|
// include it in the error message
|
||||||
|
//
|
||||||
|
throw std::out_of_range("key was not found in unordered_flat_map");
|
||||||
|
}
|
||||||
|
|
||||||
|
mapped_type const& at(key_type const& key) const
|
||||||
|
{
|
||||||
|
auto pos = table_.find(key);
|
||||||
|
if (pos != table_.end()) {
|
||||||
|
return pos->second;
|
||||||
|
}
|
||||||
|
throw std::out_of_range("key was not found in unordered_flat_map");
|
||||||
|
}
|
||||||
|
|
||||||
mapped_type& operator[](key_type const& key)
|
mapped_type& operator[](key_type const& key)
|
||||||
{
|
{
|
||||||
return table_.try_emplace(key).first->second;
|
return table_.try_emplace(key).first->second;
|
||||||
|
@ -111,3 +111,4 @@ build_foa insert_hint_tests ;
|
|||||||
build_foa emplace_tests ;
|
build_foa emplace_tests ;
|
||||||
build_foa erase_tests ;
|
build_foa erase_tests ;
|
||||||
build_foa find_tests ;
|
build_foa find_tests ;
|
||||||
|
build_foa at_tests ;
|
||||||
|
@ -5,7 +5,12 @@
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#include "../helpers/prefix.hpp"
|
#include "../helpers/prefix.hpp"
|
||||||
|
#ifdef BOOST_UNORDERED_FOA_TESTS
|
||||||
|
#include <boost/unordered/unordered_flat_map.hpp>
|
||||||
|
#include <boost/unordered/detail/implementation.hpp>
|
||||||
|
#else
|
||||||
#include <boost/unordered_map.hpp>
|
#include <boost/unordered_map.hpp>
|
||||||
|
#endif
|
||||||
#include "../helpers/postfix.hpp"
|
#include "../helpers/postfix.hpp"
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
@ -17,8 +22,13 @@ namespace at_tests {
|
|||||||
UNORDERED_AUTO_TEST (at_tests) {
|
UNORDERED_AUTO_TEST (at_tests) {
|
||||||
BOOST_LIGHTWEIGHT_TEST_OSTREAM << "Create Map" << std::endl;
|
BOOST_LIGHTWEIGHT_TEST_OSTREAM << "Create Map" << std::endl;
|
||||||
|
|
||||||
|
#ifdef BOOST_UNORDERED_FOA_TESTS
|
||||||
|
boost::unordered_flat_map<std::string, int> x;
|
||||||
|
boost::unordered_flat_map<std::string, int> const& x_const(x);
|
||||||
|
#else
|
||||||
boost::unordered_map<std::string, int> x;
|
boost::unordered_map<std::string, int> x;
|
||||||
boost::unordered_map<std::string, int> const& x_const(x);
|
boost::unordered_map<std::string, int> const& x_const(x);
|
||||||
|
#endif
|
||||||
|
|
||||||
BOOST_LIGHTWEIGHT_TEST_OSTREAM << "Check empty container" << std::endl;
|
BOOST_LIGHTWEIGHT_TEST_OSTREAM << "Check empty container" << std::endl;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user