Size: a a a

2020 July 21

АК

Александр Караев... in supapro.cxx
Антон ⚙️
...Пока не придётся интеропиться с легаси
и в чем проблема?
источник

s

std::slavik in supapro.cxx
Егор
А как это к моему ответу относится?
void foo(int * ar) как размер узнать
просто занятно
источник

BB

Bohdan Bessonov in supapro.cxx
std::slavik
просто занятно
Никто размер массива не хранит
Ты же сам его посчитал
источник

Е

Егор in supapro.cxx
std::slavik
просто занятно
у нас православный std::size есть
источник

АК

Александр Караев... in supapro.cxx
Bohdan Bessonov
Никто размер массива не хранит
Ты же сам его посчитал
формально, что std::array, что сишный массив хранят свой размер в типе, просто в сишном варианте его легко продолбать
источник

🦉K

🦉 Neil Kulikov in supapro.cxx
Aidar Fattakhov
Дык там сложные задачки)
Нет) Там просто рассуждения ещё и на счёт архитектуры
источник

BB

Bohdan Bessonov in supapro.cxx
Александр Караев
формально, что std::array, что сишный массив хранят свой размер в типе, просто в сишном варианте его легко продолбать
Ну да
А потом начинается с++20 memcpy на массивах, ух
источник

TS

Till Schneider in supapro.cxx
std::slavik
хотя вообще тип хранит размер массива)
int arr[] = {1, 2, 3};
size_t arr_sz = *(&arr + 1) - arr;
вообще, мне чот кажется, что тут есть привкус UB
источник

AS

Anatoly Shirokov in supapro.cxx
Till Schneider
вообще, мне чот кажется, что тут есть привкус UB
не кажется
источник

VK

Vladimir Kuznetsov in supapro.cxx
Добрый день, правильно ли я понимаю, что std::thread::hardware_concurrency() возвращает количество вычислительных ядер системы? И получается если значение больше одного, то треды выполняются параллельно или после выполнения треда, управление передается в планировщик и он вызывает следующий тред?
источник

s

std::slavik in supapro.cxx
Bohdan Bessonov
Никто размер массива не хранит
Ты же сам его посчитал
#include <iostream>

int main()
{
   int arr[] = { 1, 2, 3 };
   size_t arr_sz;
   arr_sz = *(&arr + 1) - arr;
   std::cout << arr_sz << '\n';
}
источник

s

std::slavik in supapro.cxx
в рантайме считается
источник

AS

Anatoly Shirokov in supapro.cxx
std::slavik
#include <iostream>

int main()
{
   int arr[] = { 1, 2, 3 };
   size_t arr_sz;
   arr_sz = *(&arr + 1) - arr;
   std::cout << arr_sz << '\n';
}
UB, что еще сказать?
источник

s

std::slavik in supapro.cxx
Anatoly Shirokov
UB, что еще сказать?
почему?
источник

p

ptrNine in supapro.cxx
std::slavik
хотя вообще тип хранит размер массива)
int arr[] = {1, 2, 3};
size_t arr_sz = *(&arr + 1) - arr;
почему не так?
template <typename T, size_t S>
constexpr size_t c_array_size(T(&)[S]) {
   return S;
}
источник

D

Danya in supapro.cxx
ptrNine
почему не так?
template <typename T, size_t S>
constexpr size_t c_array_size(T(&)[S]) {
   return S;
}
Потому что есть std::size?
источник

Е

Егор in supapro.cxx
std::slavik
в рантайме считается
а зачем считать компайл тайм размер в рантайме
источник

AS

Anatoly Shirokov in supapro.cxx
std::slavik
почему?
разыменование указателя указывающего за последний элемент массива
источник

p

ptrNine in supapro.cxx
Danya
Потому что есть std::size?
для сишных массивов он только с 17 стандарта работает
источник

s

std::slavik in supapro.cxx
Егор
а зачем считать компайл тайм размер в рантайме
да блин, понятно что так не надо делать, я просто показал что размер массива хранится в типе
источник