cast.h 816 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <library/cpp/yt/exception/exception.h>
  3. namespace NYT {
  4. ////////////////////////////////////////////////////////////////////////////////
  5. template <class T, class S>
  6. constexpr bool CanFitSubtype();
  7. template <class T, class S>
  8. constexpr bool IsInIntegralRange(S value);
  9. template <class T, class S>
  10. constexpr bool TryIntegralCast(S value, T* result);
  11. template <class T, class S>
  12. T CheckedIntegralCast(S value);
  13. ////////////////////////////////////////////////////////////////////////////////
  14. template <class T, class S>
  15. constexpr bool TryEnumCast(S value, T* result);
  16. template <class T, class S>
  17. T CheckedEnumCast(S value);
  18. ////////////////////////////////////////////////////////////////////////////////
  19. } // namespace NYT
  20. #define CAST_INL_H_
  21. #include "cast-inl.h"
  22. #undef CAST_INL_H_