fixes const-correctness

[SVN r38222]
This commit is contained in:
Tobias Schwinger
2007-07-15 16:25:11 +00:00
parent 76bb8db5b7
commit 50bd63adcd
8 changed files with 64 additions and 49 deletions

View File

@ -26,11 +26,15 @@ namespace boost { namespace fusion { namespace detail
template <typename T> struct gref<T&> { typedef T & type; };
template <typename T> struct gref<T const> { typedef T const& type; };
// remove_const< remove_reference<_> >
template <typename T> struct uncr { typedef T type; };
template <typename T> struct uncr<T const> { typedef T type; };
template <typename T> struct uncr<T &> { typedef T type; };
template <typename T> struct uncr<T const &> { typedef T type; };
// appropriately qualified target function in const context
template <typename T> struct qf_c { typedef T const type; };
template <typename T> struct qf_c<T const> { typedef T const type; };
template <typename T> struct qf_c<T &> { typedef T type; };
// appropriately qualified target function in non-const context
template <typename T> struct qf { typedef T type; };
template <typename T> struct qf<T const> { typedef T const type; };
template <typename T> struct qf<T &> { typedef T type; };
}}}
#endif