|
template<typename T , typename Stream , typename... Args> |
using | bitstream::utility::has_serialize_t = std::void_t< decltype(serialize_traits< T >::serialize(std::declval< Stream & >(), std::declval< Args >()...))> |
|
template<typename T , typename R = bool> |
using | bitstream::utility::is_writing_t = std::enable_if_t< T::writing, R > |
|
template<typename T , typename R = bool> |
using | bitstream::utility::is_reading_t = std::enable_if_t< T::reading, R > |
|
template<typename T > |
using | bitstream::utility::base_t = typename std::remove_const_t< std::remove_pointer_t< std::decay_t< T > >> |
|
template<typename Trait , typename Stream , typename... Args> |
using | bitstream::utility::deduce_trait_t = typename deduce_trait< void, Trait, Stream, Args... >::type |
|
template<typename Trait , typename Stream , typename... Args> |
using | bitstream::utility::has_deduce_serialize_t = has_serialize_t< deduce_trait_t< Trait, Stream, Args... >, Stream, Trait, Args... > |
|
|
template<typename T , typename Stream , typename... Args> |
constexpr bool | bitstream::utility::has_serialize_v = has_serialize<void, T, Stream, Args...>::value |
|
template<typename T , typename Stream , typename... Args> |
constexpr bool | bitstream::utility::is_serialize_noexcept_v = is_serialize_noexcept<void, T, Stream, Args...>::value |
|
template<typename Trait , typename Stream , typename... Args> |
constexpr bool | bitstream::utility::is_deduce_serialize_noexcept_v = is_serialize_noexcept_v<deduce_trait_t<Trait, Stream, Args...>, Stream, Trait, Args...> |
|