]> git.llucax.com Git - z.facultad/75.42/string.git/blobdiff - universalstring.h
Se agrega la carátula.
[z.facultad/75.42/string.git] / universalstring.h
index 51f0e6c92c72e544c42a571e950ff51d732d8d83..fe740e86bbdb017d04bc20cfd294776a132b8543 100644 (file)
@@ -21,6 +21,7 @@
 #include <istream>
 #include <iterator>
 #include <vector>
+#include <cctype>
 
 #ifdef DEBUG
 #   include <iostream>
@@ -59,6 +60,16 @@ class UniversalString {
             }
         }
 
+        /// Constructor a partir de otro UniversalString.
+        template < class T2 >
+        UniversalString(const UniversalString< T2 >& str) {
+#ifdef DEBUG
+            std::cerr << "En constructor de UniversalString a partir de otro."
+                << std::endl;
+#endif
+            *this = str;
+        }
+
         /// Constructor de copia.
         UniversalString(const UniversalString& str) {
 #ifdef DEBUG
@@ -149,11 +160,13 @@ class UniversalString {
             // Obtengo primer caracter, incluyendo espacios.
             T c;
             in >> std::noskipws >> c;
-            // Mientras que no sea el fin de línea, sigo leyendo caracteres.
-            while (!c.is_endl()) {
+            // Mientras que no sea un fin de línea, sigo leyendo caracteres.
+            while (c != '\n') {
                 str.string.push_back(c);
                 in >> std::noskipws >> c;
             }
+            // Vuelvo a setear que ignore espacios.
+            in >> std::skipws;
             return in;
         }