template <typename type>
bool is_array(type const &var) {
std::cout << sizeof(var) << " " << sizeof(type);
return sizeof(var) > sizeof(type);
}
int main() {
int a[10], b;
is_array(a);
return 0;
}
Подскажите, пожалуйста, почему вышеуказанный код показывает, что
sizeof(var) == sizeof(type) == 40
как я могу получить тип переменного? Чтоб получилось так
sizeof(var) == 40
sizeof(type) == 4
"Вышеуказанный код" показывает, что sizeof(var) == sizeof(type)
потому, что это так и есть. Это скорее у вас нужно спрашивать, почему вы ожидали иного результата.
Если тип T
- массив, то тип элемента этого массива вы можете получить через std::remove_extent<T>::type
или std::remove_all_extents<T>::type
, в зависимости от того, что именно вам нужно
template <typename type>
bool is_array(type const &var)
{
using element = typename std::remove_all_extents<type>::type;
std::cout << sizeof(type) << " " << sizeof(element) << std::endl;
return sizeof(type) > sizeof(element);
}
int main()
{
int a[10];
is_array(a);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Почему-то программа крашится на scanf'е, выдаёт ошибку malloc_consolidate() invalid chunk sizeНо если я поставлю функцию game_logic () в main после остальных, то всё будет...
Я не могу понять что не так с кодом, можете помочь дописать его
Вопрос нубский, потому что питонистИмеется функция в хедере через extern C
Я пробовал запускать в visual 2019 но он не выводит в файл, я попробовал запустить в visual 2010 и dev cpp но там выводились цифры которые не как не относятся...