std::array::size
От: _NN_ www.nemerleweb.com
Дата: 19.07.18 08:43
Оценка: +1 :)))
Почему тип array::size не зависит от размера массива ?
Вместо
constexpr size_type size() const noexcept;


Могло бы быть что-то вроде
constexpr switch<sizeof(T), 1:uint8_t, 2: uint16_t, 4: uint32_t, uint64_t> size() const noexcept;


Из-за этого приходится добавлять явное приведение типа в функции, которые принимают размер типов uint32_t.
С обычным массивом этого делать не требуется.

void f(char* buf, uint32_t size) {}

array<char, 127> arr;
f(&arr[0], static_cast<uint32_t>(arr.size())); 

char carr[127];
f(&arr[0], sizeof(carr)/sizeof(carr[0])); // OK
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.