1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #pragma once
- #include "enum.h"
- #include <library/cpp/yt/exception/exception.h>
- #include <optional>
- namespace NYT {
- ////////////////////////////////////////////////////////////////////////////////
- template <class T, class S>
- constexpr bool CanFitSubtype();
- template <class T, class S>
- constexpr bool IsInIntegralRange(S value);
- template <class T, class S>
- constexpr std::optional<T> TryCheckedIntegralCast(S value);
- template <class T, class S>
- T CheckedIntegralCast(S value);
- ////////////////////////////////////////////////////////////////////////////////
- template <class T, class S>
- requires TEnumTraits<T>::IsEnum
- constexpr std::optional<T> TryCheckedEnumCast(S value, bool enableUnknown = false);
- template <class T, class S>
- requires TEnumTraits<T>::IsEnum
- T CheckedEnumCast(S value);
- ////////////////////////////////////////////////////////////////////////////////
- } // namespace NYT
- #define CAST_INL_H_
- #include "cast-inl.h"
- #undef CAST_INL_H_
|