Size: a a a

2020 June 22

m

magras in pro.cxx
Serg
вот еще аргумент почему реализациям плохо делать ненулевой nullptr:
инициализация структур через  calloc() не будет работать
Так calloc не начинает время жизни ни одного объекта. После выделения памяти через calloc нужно создать структуру через placement new. При этом zero initialization проставит правильное значение:
> If T is a scalar type, the object's initial value is the integral constant zero explicitly converted to T.
источник

S

Serg in pro.cxx
calloc общепринят в C-программах
источник

m

magras in pro.cxx
Про си я не знаю, я могу говорить только о плюсах. В них попытка скастить память к указателю на структуру и использовать ее - UB.
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Так calloc не начинает время жизни ни одного объекта. После выделения памяти через calloc нужно создать структуру через placement new. При этом zero initialization проставит правильное значение:
> If T is a scalar type, the object's initial value is the integral constant zero explicitly converted to T.
в C такой нужды нету, она только для С++
источник

AT

Andrew Titov in pro.cxx
magras
Так calloc не начинает время жизни ни одного объекта. После выделения памяти через calloc нужно создать структуру через placement new. При этом zero initialization проставит правильное значение:
> If T is a scalar type, the object's initial value is the integral constant zero explicitly converted to T.
> не начинает время жизни
А это ведь поправили в C++20, так?
источник

m

magras in pro.cxx
magras
Про си я не знаю, я могу говорить только о плюсах. В них попытка скастить память к указателю на структуру и использовать ее - UB.
Правда это собираются менять.
источник

S

Serg in pro.cxx
Любой компилятор C++ разрабатывают одновременно поддерживая C
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
Любой компилятор C++ разрабатывают одновременно поддерживая C
Это неважно
источник

m

magras in pro.cxx
Serg
Любой компилятор C++ разрабатывают одновременно поддерживая C
msvc?
источник

AT

Andrew Titov in pro.cxx
Serg
Любой компилятор C++ разрабатывают одновременно поддерживая C
Это разные языки. Си не вложен в C++.
источник

D

Danny in pro.cxx
Всм?
источник

S

Serg in pro.cxx
Andrew Titov
Это разные языки. Си не вложен в C++.
отличаются , но всегда имеет смысл поддерживать оба
много C++ программ обращаются к коду на C
источник

D

Danny in pro.cxx
+
источник

D

Danny in pro.cxx
Типо это логично
источник

m

magras in pro.cxx
Serg
отличаются , но всегда имеет смысл поддерживать оба
много C++ программ обращаются к коду на C
На сколько я помню, ms уже давно заморозили разработку сишного компилятора. Они развивают только плюсы.
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
отличаются , но всегда имеет смысл поддерживать оба
много C++ программ обращаются к коду на C
Обращаться через линковку можно, но компилировать С код компилятором С++ пока низя
источник

ПК

Побитый Кирпич... in pro.cxx
magras
На сколько я помню, ms уже давно заморозили разработку сишного компилятора. Они развивают только плюсы.
Вроде уже разморозили
источник

S

Serg in pro.cxx
magras
На сколько я помню, ms уже давно заморозили разработку сишного компилятора. Они развивают только плюсы.
тем не менее режим совместимости с C есть
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
отличаются , но всегда имеет смысл поддерживать оба
много C++ программ обращаются к коду на C
Вернее можно, но в некотором узком подмножестве, где например нет созданий объектов через malloc
источник

VS

Vlad Serebrennikov in pro.cxx
magras
На сколько я помню, ms уже давно заморозили разработку сишного компилятора. Они развивают только плюсы.
а он у них когда-то был? я лишь помню, что на MSDN было четко написано, что си поддерживается лишь в той части, в которой он совместим с с++
источник