]> git.llucax.com Git - z.facultad/75.42/string.git/blobdiff - universalstring.h
Se termina el informe.
[z.facultad/75.42/string.git] / universalstring.h
index 44fb64d16b2add7b1f6a54a7ae3143e078096d52..fe740e86bbdb017d04bc20cfd294776a132b8543 100644 (file)
@@ -9,7 +9,7 @@
  * Puede copiar, modificar y distribuir este programa bajo los términos de
  * la licencia GPL (http://www.gnu.org/).
  *
- * Creado: Mon Sep 22 21:00:15 ART 2003
+ * Creado: sáb sep 27 15:38:29 ART 2003
  *
  * $Id$
  */
@@ -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;
         }