Vaucanson 1.4
couple_letter.hh
00001 // couple_letter.hh: this file is part of the Vaucanson project.
00002 //
00003 // Vaucanson, a generic library for finite state machines.
00004 //
00005 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008 The Vaucanson
00006 // Group.
00007 //
00008 // This program is free software; you can redistribute it and/or
00009 // modify it under the terms of the GNU General Public License
00010 // as published by the Free Software Foundation; either version 2
00011 // of the License, or (at your option) any later version.
00012 //
00013 // The complete GNU General Public Licence Notice can be found as the
00014 // `COPYING' file in the root directory.
00015 //
00016 // The Vaucanson Group consists of people listed in the `AUTHORS' file.
00017 //
00018 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_LETTER_COUPLE_LETTER_HH
00019 # define VCSN_ALGEBRA_IMPLEMENTATION_LETTER_COUPLE_LETTER_HH
00020 
00021 # include <vaucanson/algebra/concept/letter.hh>
00022 
00023 // Needed to get defaults for projections.
00024 # include <vaucanson/algebra/implementation/letter/char_letter.hh>
00025 # include <vaucanson/algebra/implementation/letter/int_letter.hh>
00026 
00027 // Here are functions to manipulate pairs.
00028 
00029 namespace vcsn
00030 {
00031   namespace algebra
00032   {
00033     // Specialization for pairs.
00034     template <typename U, typename V>
00035     struct letter_traits<std::pair<U, V> >;
00036 
00037   } // ! algebra
00038 
00039 } // ! vcsn
00040 
00041 namespace std
00042 {
00043   template <typename U, typename V>
00044   std::ostream& operator<<(std::ostream&, const std::pair<U, V>&);
00045 
00046 } // ! std
00047 
00048 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00049 #  include <vaucanson/algebra/implementation/letter/couple_letter.hxx>
00050 # endif // ! VCSN_USE_INTERFACE_ONLY
00051 
00052 #endif // ! VCSN_ALGEBRA_IMPLEMENTATION_LETTER_COUPLE_LETTER_HH