| 1234567891011121314151617181920212223 |
- //
- // traits.hpp
- // opaque_typedef
- //
- // Created by Sam Jaffe on 12/1/23.
- // Copyright © 2023 Sam Jaffe. All rights reserved.
- //
- #pragma once
- namespace types {
- template <typename Base, typename = void> struct underlying_type {
- using type = Base const &;
- };
- template <typename Base>
- struct underlying_type<Base, std::void_t<typename Base::underlying_type>> {
- using type = typename Base::underlying_type;
- };
- template <typename Base>
- using underlying_type_t = typename underlying_type<Base>::type;
- }
|