Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

print_map.h

Go to the documentation of this file.
00001 // Map output implementation -*- C++ -*-
00002 
00003 // Copyright (C) 2001-2003 Hermann Schichl
00004 //
00005 // This file is part of the COCONUT API.  This library
00006 // is free software; you can redistribute it and/or modify it under the
00007 // terms of the Library GNU General Public License as published by the
00008 // Free Software Foundation; either version 2, or (at your option)
00009 // any later version.
00010 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // Library GNU General Public License for more details.
00015 
00016 // As a special exception, you may use this file as part of a free software
00017 // library without restriction.  Specifically, if other files instantiate
00018 // templates or use macros or inline functions from this file, or you compile
00019 // this file and link it with other files to produce an executable, this
00020 // file does not by itself cause the resulting executable to be covered by
00021 // the Library GNU General Public License.  This exception does not however
00022 // invalidate any other reasons why the executable file might be covered by
00023 // the Library GNU General Public License.
00024 
00027 #ifndef __PRINT_MAP_H_
00028 #define __PRINT_MAP_H_
00029 
00030 #include <map>
00031 #include <multimap>
00032 #include <print_tuple.h>
00033 
00034 template <class _K, class _Ve, class _C, class _A>
00035 std::ostream& std::operator<<(std::ostream& o, const std::map<_K,_Ve,_C,_A>& a)
00036 {
00037   typename std::map<_K,_Ve,_C,_A>::const_iterator b(a.begin()), e(a.end());
00038   o << "{";
00039   if(!a.empty())
00040   {
00041     o << *b;
00042     for(++b; b != e; ++b)
00043       o << "," << *b;
00044   }
00045   return o << "}";
00046 }
00047 
00048 template <class _Ve, class _C, class _A>
00049 std::ostream& std::operator<<(std::ostream& o, const std::multiset<_Ve,_C,_A>& a)
00050 {
00051   typename std::multi_map<_K,_Ve,_C,_A>::const_iterator b(a.begin()), e(a.end());
00052   o << "{";
00053   if(!a.empty())
00054   {
00055     o << *b;
00056     for(++b; b != e; ++b)
00057       o << "," << *b;
00058   }
00059   return o << "}";
00060 }
00061 
00062 #endif /* __PRINT_MAP_H_ */

Generated on Tue Nov 4 01:57:58 2003 for COCONUT API by doxygen1.2.18