LINUX.ORG.RU

libcello

 няшная,


0

3

Палю годноту.

Это библиотека для C99, которая добавляет в сишку тайпклассы, вывод типов, исключения, лямбды, а также много, много синтаксического сахара в стиле JavaScript.

Как думаете, взлетит? Будет ли использоваться для чего-нибудь серьезного? А вы сами будете использовать?

Пишите свои комментарии.

Небольшой пример кода для Ъ:

#include "Cello.h"

int main(int argc, char** argv) {

  /* Stack objects are created using "$" */
  var int_item = $(Int, 5);
  var float_item = $(Real, 2.4);
  var string_item = $(String, "Hello");

  /* Heap objects are created using "new" */
  var items = new(List, int_item, float_item, string_item);

  /* Collections can be looped over */
  foreach (item in items) {
    /* Types are also objects */
    var type = type_of(item);
    print("Object %$ has type %$\n", item, type);
  }

  /* Heap objects destroyed with "delete" */
  delete(items); 
}


Последнее исправление: rogvold (всего исправлений: 1)

Какие-то подозрительные объекты на стеке. Они, небось, и деструктор сами вызывают?

O02eg ★★★★★
()

все это есть в С++11.

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

М.б. Int это выводимый тип или еще какая нить фигня. ЕМНИП $ то в синтаксисе отсутствует, они код что ли парсят предварительно?

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

Хрена се, $ это видать макрос (директива препроцессора). Рвет шаблон, я и не знал что так можно...

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

Не, ну он описывает исходное значение, а дальше тип выводится при обработке этой шняги (если с ней че нить делать).

AIv ★★★★★
()

баловство, если на плюсах такое имеет смысл, т.к. можно сделать счетчик ссылок, есть реальной вывод типов, исключения, лямбды, variadic templates, range for, RAII и т.п., то городить такое на препроцессоре С - ходить по минному полю

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

Хрена се, $ это видать макрос (директива препроцессора). Рвет шаблон, я и не знал что так можно...

нельзя, это расширение gcc

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

нельзя, это расширение gcc

Уф, я думал что крыша съехала...

     R.2.3 Идентификаторы

Идентификатор - это последовательность букв и цифр произвольной длины.
Первый символ должен быть буквой, символ подчеркивания _ считается
буквой. Прописные и строчные буквы различаются. Все символы
существенны.

А у меня оно ест $ и в именах ф-й и в переменных... шалунишки эти разработчики gcc.

AIv ★★★★★
()
Последнее исправление: AIv (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.