traits.h 344 B

12345678910111213141516
  1. //
  2. // traits.hpp
  3. // stream
  4. //
  5. // Created by Sam Jaffe on 6/24/17.
  6. //
  7. #pragma once
  8. #include <utility>
  9. namespace stream::traits {
  10. template <typename C> using ref_t = decltype(*std::begin(std::declval<C>()));
  11. template <typename C> using value_type = std::decay_t<ref_t<C>>;
  12. template <typename C> using cref_t = std::add_const_t<ref_t<C>>;
  13. }