LINUX.ORG.RU

Что нужно добавить в C?

 


0

5

Расскажите, что бы вы хотели добавить в си? Только то, что реально можно добавить, не делая при этом новый язык. Просто фичи, которых не хватает.

Или покритикуйте мой список.

  • Константы. #define - препроцессор, const не работает полноценно в compile-time, enum только для целых и вообще для другого .
  • Лямбды (анонимные функции) - для удобства коллбеков. Можно без замыканий, т. к. они много скрывают.
  • Модули, если возможно. Для изоляции единиц трансляции.
  • Интроспекция (typeof, хотя бы) - для обобщенного программирования.
  • Более развитая макросистема - для того же. Например, возможность макросы раскрывать в директивы препроцессора.
  • Пространства имен, чистые функции, switch по составным типам, case с диапазоном - для сокращения кода.
  • Аналоги volatile и restrict с более точным контролем - для микрооптимизации.
  • Доступ к стеку вызовов, goto между функциями - для трюков типа трамплинов.
  • В стандартной библиотеке - строки, контейнеры, foreach, большие числа. Возможно, сокеты.
★★★★
Ответ на: комментарий от Legioner

Интроспекция (typeof, хотя бы) - для обобщенного программирования.

Не нужно

Не нужно кому? Те, кто не обязан писать переносимый код, вполне пользуются GNU-расширением __typeof__.

накладные расходы

Какие и на что?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Не нужно кому? Те, кто не обязан писать переносимый код, вполне пользуются GNU-расширением __typeof__.

Если compile-time, то можно, проблем не вижу. Я чего то подумал про runtime reflection.

Legioner ★★★★★
()
Ответ на: комментарий от tailgunner

Те, кто не обязан писать переносимый код,

Ахаха насмешил - gnuc-код самый переносимый в мире. А тут вдруг пацан решил, что он не переносимый - куллстори.

Carb
()
Ответ на: комментарий от Carb

Это хорошо, что ты решил зарегистрироваться.

tailgunner ★★★★★
()
Ответ на: комментарий от Carb

У тебя уже есть gcc для PIC? Нет? Вали отсюда, ламер.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.