rem: if (sizeof(align_t) > sizeof(value_t)) return get_number_value<value_t>(value_t(*(align_t*)address), format); else return get_number_value<value_t>(*(value_t*)address, format);
add: char buffer[32]; sprintf(buffer, format, value); return buffer;
context: get_number_value(const void *address, const char *format){	if (sizeof(align_t) > sizeof(value_t))		return get_number_value<value_t>(value_t(*(align_t*)address), format);	else		return get_number_value<value_t>(*(value_t*)address, format);}