map.h 869 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the
  5. * LICENSE file in the root directory of this source tree.
  6. */
  7. #pragma once
  8. #include <better/better.h>
  9. #ifdef BETTER_USE_FOLLY_CONTAINERS
  10. #include <folly/container/F14Map.h>
  11. #else
  12. #include <unordered_map>
  13. #endif
  14. namespace facebook {
  15. namespace better {
  16. /*
  17. * Note: In Better, `map` aliases to `unorderd_map` because everyone agrees that
  18. * an *ordered* map is nonsense and was a huge mistake for standardization. If
  19. * you need an *ordered* map, feel free to introduce that as
  20. * `better::ordered_map`.
  21. */
  22. #ifdef BETTER_USE_FOLLY_CONTAINERS
  23. template <typename... Ts>
  24. using map = folly::F14FastMap<Ts...>;
  25. #else
  26. template <typename... Ts>
  27. using map = std::unordered_map<Ts...>;
  28. #endif
  29. } // namespace better
  30. } // namespace facebook