Vaucanson 1.4
|
00001 // element_op_traits.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 The Vaucanson Group. 00006 // 00007 // This program is free software; you can redistribute it and/or 00008 // modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 2 00010 // of the License, or (at your option) any later version. 00011 // 00012 // The complete GNU General Public Licence Notice can be found as the 00013 // `COPYING' file in the root directory. 00014 // 00015 // The Vaucanson Group consists of people listed in the `AUTHORS' file. 00016 // 00017 #ifndef VCSN_DESIGN_PATTERN_ELEMENT_OP_TRAITS_HH 00018 # define VCSN_DESIGN_PATTERN_ELEMENT_OP_TRAITS_HH 00019 00029 #include <vaucanson/design_pattern/predecls.hh> 00030 00031 namespace vcsn { 00032 00036 /*--------------. 00037 | op_add_traits | 00038 `--------------*/ 00039 00043 template<typename S1, typename S2, typename T1, typename T2> 00044 struct op_add_traits 00045 { 00046 typedef Element<S1, T1> ret_t; 00047 }; 00048 00049 /*--------------. 00050 | op_sub_traits | 00051 `--------------*/ 00052 00056 template<typename S1, typename S2, typename T1, typename T2> 00057 struct op_sub_traits 00058 { 00059 typedef Element<S1, T1> ret_t; 00060 }; 00061 00062 /*--------------. 00063 | op_mul_traits | 00064 `--------------*/ 00065 00069 template<typename S1, typename S2, typename T1, typename T2> 00070 struct op_mul_traits 00071 { 00072 typedef Element<S1, T1> ret_t; 00073 }; 00074 00075 /*--------------. 00076 | op_div_traits | 00077 `--------------*/ 00078 00082 template<typename S1, typename S2, typename T1, typename T2> 00083 struct op_div_traits 00084 { 00085 typedef Element<S1, T1> ret_t; 00086 }; 00087 00088 00089 /*--------------. 00090 | op_mod_traits | 00091 `--------------*/ 00092 00096 template<typename S1, typename S2, typename T1, typename T2> 00097 struct op_mod_traits 00098 { 00099 typedef Element<S1, T1> ret_t; 00100 }; 00101 00105 } // vcsn 00106 00107 #endif // ! VCSN_DESIGN_PATTERN_ELEMENT_OP_TRAITS_HH