vec_common is required as some definitions are needed by both vectorwrapper and vec_base. I also wanted to keep all of the define_has_* macro invocations together, for clarity.