optional.h 666 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. #if defined(BETTER_USE_FOLLY_CONTAINERS) || __cplusplus < 202000L
  10. #include <folly/Optional.h>
  11. #else
  12. #include <optional>
  13. #endif
  14. namespace facebook {
  15. namespace better {
  16. #if defined(BETTER_USE_FOLLY_CONTAINERS) || __cplusplus < 202000L
  17. template <typename Value>
  18. using optional = folly::Optional<Value>;
  19. #else
  20. template <typename Value>
  21. using optional = std::optional<Value>;
  22. #endif
  23. } // namespace better
  24. } // namespace facebook