Size: a a a

2020 July 04

v

vehlwn in pro.cxx
Alex
В смысле? Вопрос был ровно в обратном - как корректно добавить перегрузку для size_t, и не сломать те платформы, где это действительно один и тот же тип.
Это такая шутка? В плюсах нет никаких гарантий на size_t, кроме того что он должен вмещать размер всех объектов системы.
источник

D

Dmitriy in pro.cxx
Alex
В смысле? Вопрос был ровно в обратном - как корректно добавить перегрузку для size_t, и не сломать те платформы, где это действительно один и тот же тип.
Для чего это требуется?
источник

A

Alex in pro.cxx
Alex
class A { 
  A(uint32_t);
  A(uint64_t);
};

A a(sizeof(int)); // На одних платформах скомпилится, на других - нет
Для этого, например.
источник

v

vehlwn in pro.cxx
Alex
class A { 
  A(uint32_t);
  A(uint64_t);
};

A a(sizeof(int)); // На одних платформах скомпилится, на других - нет
Потому что sizeof возвращает size_t, а не uintN_t.
источник

A

Alex in pro.cxx
я не спрашивал, почему это не компилится
источник

A

Alex in pro.cxx
хотя я считаю, это баг стандарта, что size_t не обязан совпадать с uint64_t / uint32_t
источник

A

Alex in pro.cxx
проблемы на ровном месте
источник

v

vehlwn in pro.cxx
Alex
хотя я считаю, это баг стандарта, что size_t не обязан совпадать с uint64_t / uint32_t
А расширенные интегралы uintN_t, которые могут не совпадать с встроенными интегралами, это не баг? Ты неправильно используешь плюсы.
источник

v

vehlwn in pro.cxx
Alex
хотя я считаю, это баг стандарта, что size_t не обязан совпадать с uint64_t / uint32_t
[17 названий однобайтового типа входят в чат.]
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
vehlwn
А расширенные интегралы uintN_t, которые могут не совпадать с встроенными интегралами, это не баг? Ты неправильно используешь плюсы.
uintN_t которых вообще может не быть
источник

A

Alex in pro.cxx
vehlwn
[17 названий однобайтового типа входят в чат.]
:)
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
хотя я считаю, это баг стандарта, что size_t не обязан совпадать с uint64_t / uint32_t
А я чёто не понял как они не совпадают? Это либо long, либо long long. Какие на маки эти типы все?
источник

v

vehlwn in pro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
uintN_t которых вообще может не быть
Которые встроены в клмпелятор __impl_uint64_t  и не равен ни одному лонгу, лонг лонгу, шорту, инту.
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
А еще по стандарту SIZE_MAX 65535
источник

A

Alex in pro.cxx
using uint64_t = unsigned long;
using size_t = unsigned long long;
источник

A

Alex in pro.cxx
или наоборот
источник

A

Alex in pro.cxx
и всё, проблемки
источник

ПК

Побитый Кирпич... in pro.cxx
А uint32_t тогда какой?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
vehlwn
Которые встроены в клмпелятор __impl_uint64_t  и не равен ни одному лонгу, лонг лонгу, шорту, инту.
Ну в кланге это лонг, лонг лонг, шорт и тд
источник

A

Alex in pro.cxx
unsigned int, наверное
источник