std::cerr << "En destructor de Unicode." << std::endl;
#endif
}
-#include <iostream>
-bool Unicode::is_endl(void) {
-#ifdef DEBUG
- std::cerr << "En Unicode::is_endl()." << std::endl;
-#endif
- // Si los últimos 8 bits son 0xA = 10 = '\n' devuelve true.
- return (static_cast<char>(caracter) == '\n')
- || (static_cast<char>(caracter >> 8) == '\n');
-}
Unicode& Unicode::operator=(const Unicode& unicode) {
#ifdef DEBUG
return *this;
}
-bool Unicode::operator<(const Unicode& unicode) {
+bool Unicode::operator<(const Unicode& unicode) const {
#ifdef DEBUG
std::cerr << "En operator< de Unicode." << std::endl;
#endif
return caracter < unicode.caracter;
}
-bool Unicode::operator==(const Unicode& unicode) {
+bool Unicode::operator==(const Unicode& unicode) const {
#ifdef DEBUG
std::cerr << "En operator== de Unicode." << std::endl;
#endif
return caracter == unicode.caracter;
}
-Unicode::operator short(void) const {
-#ifdef DEBUG
- std::cerr << "En cast de Unicode a char." << std::endl;
-#endif
- return static_cast<short>(caracter);
-}
-
Unicode::operator char(void) const {
#ifdef DEBUG
std::cerr << "En cast de Unicode a char." << std::endl;
#ifdef DEBUG
std::cerr << "En operator>> de Unicode." << std::endl;
#endif
- char c1;
- char c2;
- // Lee los 2 primeros caracteres que no sean espacio.
- in >> c1 >> std::noskipws >> c2 >> std::skipws;
- // Los asigno como un short cuyos bits mas significativos corresponden al
- // caracter 1 y los menos significativos al caracter 2.
- unicode.caracter = (static_cast<short>(c1) << 8) + c2;
+ char c;
+ // Lee el primer caracter ASCII.
+ in >> c;
+ // Lo asigno como un short cuyos bits menos significativos son los del
+ // caracter leído.
+ unicode.caracter = static_cast<short>(c);
return in;
}