woodbri / address-standardizer

An address parser and standardizer in C++
Other
7 stars 1 forks source link

operator << #2

Closed cvvergara closed 8 years ago

cvvergara commented 8 years ago

Instead of this:

void Lexicon::dump() const {
    std::stringstream ss;
    ss << name_ << "\t"
       << langAsString() << "\t"
       << locale_;

    // later we might want to output to a logger instead of cout
    std::cout << "Lexicon: " << ss.str() << "\n";

    // TODO dump the lexicon entries
    std::cout << "Lexicon Entries (TODO)" << "\n";
}

overload like this:

friend ostream &operator<<(ostream  &ss, const Lexicon &lex ) { 
     ss << "Lexicon: " <<
       << name_ << "\t"
       << langAsString() << "\t"
       << locale_
       << "\n";
       << "Lexicon Entries (TODO)" << "\n";
    // TODO dump the lexicon entries
}

usage:

   Lexicon mylex1;
   Lexicon mylex2;
   // old usage:
   std::err << "The two lexicons:\n";
   // old usage dumps into std::cout !!!!!
   mylex1.dump();
   mylex2.dump();

   //new usage
   It can "dump" wherever I need
   std::err << "The two lexicons:\n" << mylex1 << mylex2 << "\n";
   std::cout << "The two lexicons:\n" << mylex1 << mylex2 << "\n";
woodbri commented 8 years ago

commit 40a3df3..73c33d9 closes this issue.