Define member type Slice<T>::value_type = T
diff --git a/book/src/binding/slice.md b/book/src/binding/slice.md
index c565fb0..fe1691e 100644
--- a/book/src/binding/slice.md
+++ b/book/src/binding/slice.md
@@ -17,6 +17,8 @@
 template <typename T>
 class Slice final {
 public:
+  using value_type = T;
+
   Slice() noexcept;
   Slice(const Slice<T> &) noexcept;
   Slice(T *, size_t count) noexcept;
diff --git a/include/cxx.h b/include/cxx.h
index b7deb71..1212de2 100644
--- a/include/cxx.h
+++ b/include/cxx.h
@@ -147,6 +147,8 @@
 class Slice final
     : private detail::copy_assignable_if<std::is_const<T>::value> {
 public:
+  using value_type = T;
+
   Slice() noexcept;
   Slice(T *, std::size_t count) noexcept;