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