Вот, тот же C++ включает в себя C, т.е. все что написано на C там будет работать 100% + еще добавляет некие удобные фичи, которыми можно дополнительно выстрелить в ногу.
Вроде еще Objective C похожим образом устроен, но орудий для отстрела ног меньше, что не может не радовать (а кому то наоборот — для ЧСВ хочется чтобы орудий отстрела ног было больше!).
Здравствуйте, Shmj, Вы писали:
S>Вот, тот же C++ включает в себя C, т.е. все что написано на C там будет работать 100% + еще добавляет некие удобные фичи, которыми можно дополнительно выстрелить в ногу.
Даже чистый C эволюционирует в несовместимую с собой сторону. Причем в очень тонких местах. То, что раньше формально считалось UB, но все знали, как оно работает и пользовались, теперь на самом деле становится UB и развязывает компилятору руки молча генерировать в качестве выходного кода любую чушь.
Re: Языки, расширяющие язык C (надмножество языка C)
S>Вот, тот же C++ включает в себя C, т.е. все что написано на C там будет работать 100% + еще добавляет некие удобные фичи, которыми можно дополнительно выстрелить в ногу.
Нет, новые стандарты С и С++ разводят эти языки все дальше.
Например, в С11 есть массивы переменной длины, а в С++, хоть тресни, не припомню такой синтаксической конструкции.
Хотя gcc ее поддерживает. А вот компилер студии — нет (или да? )
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Языки, расширяющие язык C (надмножество языка C)
LVV>>Хотя gcc ее поддерживает. А вот компилер студии — нет (или да? ) S>Идея вроде бы такая — что все написанное на C валидно с т.з. C++. Если пока не поддерживает компиллер — то это временно по идее.
Нет. В стандарте С++ такого не припомню.
Там обычные массивы — они как в С, и динамические — через new().
А вот таких как в С — нету.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Языки, расширяющие язык C (надмножество языка C)
Здравствуйте, LaptevVV, Вы писали:
LVV>Нет. В стандарте С++ такого не припомню. LVV>Там обычные массивы — они как в С, и динамические — через new(). LVV>А вот таких как в С — нету.
LVV>>Нет. В стандарте С++ такого не припомню. LVV>>Там обычные массивы — они как в С, и динамические — через new(). LVV>>А вот таких как в С — нету. A>Да что вы говорите. https://godbolt.org/z/MnEGha3Yb
А прочитать?
Компилятор реализует, но это не значит, что есть в стандарте.
И не всякий компилятор реализует.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Языки, расширяющие язык C (надмножество языка C)
LVV>>Компилятор реализует, но это не значит, что есть в стандарте. ЕМ>Насколько я знаю, в стандартах C (за исключением, может, самых современных) динамических массивов тоже нет.
Да вроде в С11 есть.
У меня книжка Дейтела по программированию на С11.
Дейтел обычно стандартов придерживается в своих книжек.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Языки, расширяющие язык C (надмножество языка C)
Здравствуйте, LaptevVV, Вы писали:
LVV>Например, в С11 есть массивы переменной длины, а в С++, хоть тресни, не припомню такой синтаксической конструкции.
Насколько я знаю, это опциональная фича согласно стандарта. Т.е. использовать её не рекомендуется.
Re: Языки, расширяющие язык C (надмножество языка C)