template<typename T>
manif::internal::traits<const T> struct

When constness must affect traits, it has to be constness on template parameters on which T itself depends. For example, traits<Map<const T> > != traits<Map<T> >, but traits<const Map<T> > == traits<Map<T> >

Base classes

template<typename T>
struct traits<T>