Index: uspace/lib/cpp/include/impl/istream.hpp
===================================================================
--- uspace/lib/cpp/include/impl/istream.hpp	(revision d91b329a70257d6cc6e0faa0bd880bea3f0fa13a)
+++ uspace/lib/cpp/include/impl/istream.hpp	(revision 2987160e9aba409b3bda76ca9f0b640d345bd1d3)
@@ -905,5 +905,41 @@
 
     template<class Char, class Traits>
-    class basic_iostream;
+    class basic_iostream
+        : public basic_istream<Char, Traits>,
+          public basic_ostream<Char, Traits>
+    {
+        public:
+            using char_type   = Char;
+            using traits_type = Traits;
+            using int_type    = typename traits_type::int_type;
+            using pos_type    = typename traits_type::pos_type;
+            using off_type    = typename traits_type::off_type;
+
+            explicit basic_iostream(basic_streambuf<char_type, traits_type>* sb)
+                : basic_istream<char_type, traits_type>(sb),
+                  basic_ostream<char_type, traits_type>(sb)
+            { /* DUMMY BODY */ }
+
+            virtual ~basic_iostream()
+            { /* DUMMY BODY */ }
+
+        protected:
+            basic_iostream(const basic_iostream&) = delete;
+            basic_iostream& operator=(const basic_iostream&) = delete;
+
+            basic_iostream(basic_iostream&& other)
+                : basic_istream<char_type, traits_type>(move(other))
+            { /* DUMMY BODY */ }
+
+            basic_iostream& operator=(basic_iostream&& other)
+            {
+                swap(other);
+            }
+
+            void swap(basic_iostream& other)
+            {
+                basic_istream<char_type, traits_type>::swap(other);
+            }
+    };
 
     using iostream  = basic_iostream<char>;
