Size: a a a

2020 May 12

R

Ruben in pro.cxx
ок
источник

m

magras in pro.cxx
vehlwn
Это определено СИ стандартом, как арифметика на char*.
К void* не применима арифметика указателей.
источник

E

Eugene in pro.cxx
Ruben
а как производится арифметика с целым числом для void* указателей? Это определено стандартом?
Херово и спорно. Какие-то компиляторы дают двигаться по void*, какие-то ругаются. Лучше кастить в char*, такое все пропустят
источник

R

Ruben in pro.cxx
я тоже так подумал когда увидел
источник

R

Ruben in pro.cxx
что лучше кастить в uint8_t*
источник

R

Ruben in pro.cxx
Artöm Bakri Al-Sarmini
Используете флаг /permissive- в продакшене?
(прошу не участвовать в опросе, если проект не таргетит винду или если вы школьник)
Анонимный опрос
31%
Да
41%
Нет
28%
Что это? (скорее всего да)
Проголосовало: 32
а почему только винда интересует?
источник

DC

Denis Chernikov in pro.cxx
Ruben
что лучше кастить в uint8_t*
Может глупый вопрос, но почему не в std::byte*?
источник

R

Ruben in pro.cxx
Denis Chernikov
Может глупый вопрос, но почему не в std::byte*?
привычка работать с uintX_t
источник

R

Ruben in pro.cxx
Denis Chernikov
Может глупый вопрос, но почему не в std::byte*?
а еще, потому что конкретно этот проект на С
источник

DC

Denis Chernikov in pro.cxx
Ruben
а еще, потому что конкретно этот проект на С
👌
источник

R

Ruben in pro.cxx
на плюсах я бы юзал std::uint8_t
источник

DC

Denis Chernikov in pro.cxx
Ruben
а еще, потому что конкретно этот проект на С
источник

R

Ruben in pro.cxx
я уже давно не юзал unsigned, long, int и тп. Привык юзать типы с четко указанной длиной
источник

PP

Pavel P in pro.cxx
С я бы переписал на Zig
источник
2020 May 13

v

vehlwn in pro.cxx
magras
К void* не применима арифметика указателей.
А да. Это гнутое расширение https://godbolt.org/z/FC_KoS
источник

v

vehlwn in pro.cxx
Denis Chernikov
Может глупый вопрос, но почему не в std::byte*?
Позвольте представить мои любимые названия однобайтовых типов. Вот они слева направо:
char, signed char, unsigned char, char8_t, std::byte, std::int8_t, std::uint8_t, std::int_fast8_t, std::int_least8_t, std::uint_fast8_t, std::uint_least8_t
источник

DC

Denis Chernikov in pro.cxx
vehlwn
Позвольте представить мои любимые названия однобайтовых типов. Вот они слева направо:
char, signed char, unsigned char, char8_t, std::byte, std::int8_t, std::uint8_t, std::int_fast8_t, std::int_least8_t, std::uint_fast8_t, std::uint_least8_t
Но ведь кандидат номер 5 слева самый прозрачный в плане гуляния по памяти без конкретного типа
источник

v

vehlwn in pro.cxx
Denis Chernikov
Но ведь кандидат номер 5 слева самый прозрачный в плане гуляния по памяти без конкретного типа
Только мемцпу, мемсет и остальные сишные мемы почему-то принимают void *.
источник

DC

Denis Chernikov in pro.cxx
vehlwn
Только мемцпу, мемсет и остальные сишные мемы почему-то принимают void *.
Си такой си 🙃
Кстати да, есть ли более корректные аналоги среди того, что работает с uninitialized memory?
источник

v

vehlwn in pro.cxx
Denis Chernikov
Си такой си 🙃
Кстати да, есть ли более корректные аналоги среди того, что работает с uninitialized memory?
std::aligned_storage
источник