/* $Id: PrettyPrint.h 15564 2013-01-07 14:25:32Z sloot $ $URL: https://ilk.uvt.nl/svn/sources/libticcutils/trunk/include/ticcutils/PrettyPrint.h $ Copyright (c) 1998 - 2013 ILK - Tilburg University CLiPS - University of Antwerp This file is part of ticcutils ticcutils is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ticcutils is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . For questions and suggestions, see: http://ilk.uvt.nl/software.html or send mail to: timbl@uvt.nl */ #ifndef TICC_PRETTY_PRINT_H #define TICC_PRETTY_PRINT_H #include #include #include #include #include #include namespace TiCC { template< typename T > inline std::ostream& operator<< ( std::ostream& os, const std::set& s ){ os << "{"; typename std::set::const_iterator it = s.begin(); while ( it != s.end() ){ os << *it; ++it; if ( it != s.end() ) os << ","; } os << "}"; return os; } template< typename T > inline std::ostream& operator<<( std::ostream& os, const std::list& s ){ os << "["; typename std::list::const_iterator it = s.begin(); while ( it != s.end() ){ os << *it; ++it; if ( it != s.end() ) os << ","; } os << "]"; return os; } template< typename T > inline std::ostream& operator<< ( std::ostream& os, const std::vector& s ){ os << "["; typename std::vector::const_iterator it = s.begin(); while ( it != s.end() ){ os << *it; ++it; if ( it != s.end() ) os << ","; } os << "]"; return os; } template< typename S, typename T > inline std::ostream& operator<< ( std::ostream& os, const std::map& s ){ os << "{"; typename std::map::const_iterator it = s.begin(); while ( it != s.end() ){ os << "<" << it->first << "," << it->second << ">"; ++it; if ( it != s.end() ) os << ","; } os << "}"; return os; } template< typename S, typename T, typename U > std::ostream& operator<< ( std::ostream& os, const std::map& s ){ os << "{"; typename std::map::const_iterator it = s.begin(); while ( it != s.end() ){ os << "<" << it->first << "," << it->second << ">"; ++it; if ( it != s.end() ) os << ","; } os << "}"; return os; } template< typename S, typename T > inline std::ostream& operator<< ( std::ostream& os, const std::multimap& s ){ os << "{"; typename std::multimap::const_iterator it = s.begin(); while ( it != s.end() ){ os << "<" << it->first << "," << it->second << ">"; ++it; if ( it != s.end() ) os << ","; } os << "}"; return os; } } #endif // PRETTY_PRINT_H