mirror of
https://github.com/status-im/react-native.git
synced 2025-02-23 22:58:19 +00:00
Summary: `Better` is a trivial collection of basic tools borrowed from other low-level general purpose libraries (like Folly, Abseil or Boost). The main goals of Better: - Make the codebase more portable; - Make the dependency list explicit (by decoupling it as a dependency list of Better); - Make relying on modern C++ patterns and tools in code simple and easy. - Make executing experiments with different dependencies easier. As a first example usage, this diff replaces std::unordered_map with an efficient one from folly on the one of the hottest paths. Reviewed By: JoshuaGross Differential Revision: D13944565 fbshipit-source-id: 5fa2c4abe6c17f7361eddcc25f968b6440d5d9db
46 lines
870 B
C++
46 lines
870 B
C++
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <better/better.h>
|
|
|
|
#ifdef BETTER_USE_FOLLY_CONTAINERS
|
|
|
|
#include <folly/container/F14Map.h>
|
|
|
|
#else
|
|
|
|
#include <unordered_map>
|
|
|
|
#endif
|
|
|
|
namespace facebook {
|
|
namespace better {
|
|
|
|
/*
|
|
* Note: In Better, `map` aliases to `unorderd_map` because everyone agrees that
|
|
* an *ordered* map is nonsense and was a huge mistake for standardization. If
|
|
* you need an *ordered* map, feel free to introduce that as
|
|
* `better::ordered_map`.
|
|
*/
|
|
|
|
#ifdef BETTER_USE_FOLLY_CONTAINERS
|
|
|
|
template <typename... Ts>
|
|
using map = folly::F14FastMap<Ts...>;
|
|
|
|
#else
|
|
|
|
template <typename... Ts>
|
|
using map = std::unordered_map<Ts...>;
|
|
|
|
#endif
|
|
|
|
} // namespace better
|
|
} // namespace facebook
|