namespace factor { template cell array_capacity(T *array) { #ifdef FACTOR_DEBUG assert(array->h.hi_tag() == T::type_number); #endif return array->capacity >> TAG_BITS; } template cell array_size(cell capacity) { return sizeof(T) + capacity * T::element_size; } template cell array_size(T *array) { return array_size(array_capacity(array)); } }