00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_MISC_FUNCTORS_HH
00018 # define VCSN_MISC_FUNCTORS_HH
00019 
00020 # include <functional>
00021 # include <utility>
00022 
00023 namespace vcsn
00024 {
00025   namespace misc
00026   {
00027 
00028     template <typename T>
00029     struct pair : public std::binary_function<T, T, std::pair<T, T > >
00030     {
00031         std::pair<T, T> operator () (T x, T y) const;
00032     };
00033 
00034 
00035     template <typename T>
00036     struct discrepancy : public std::binary_function<T, T, std::pair<T, T> >
00037     {
00038         std::pair<T, T> operator () (T x, T y) const;
00039     };
00040 
00041   } 
00042 } 
00043 
00044 
00045 # ifndef VCSN_USE_INTERFACE_ONLY
00046 #  include <vaucanson/misc/functors.hxx>
00047 # endif // VCSN_USE_INTERFACE_ONLY
00048 
00049 #endif // ! VCSN_MISC_FUNCTORS_HH