Size: a a a

cxx.Дискуссионная

2020 July 05

Е

Егор in cxx.Дискуссионная
Ofee
Это не про структуры, а про имплементацию std::variant и паттерн-матчинга на C
Типо систему типов более строгой сделать?
источник

O

Ofee in cxx.Дискуссионная
Егор
Типо систему типов более строгой сделать?
Э... Не совсем, я уверен, что цель там, по большей части, избавиться от кучи бойлерплейта с union. Мест, где можно прострелить ногу осталось ещё полным полно, это C, там от этого не уйти
источник

Е

Егор in cxx.Дискуссионная
Ofee
Э... Не совсем, я уверен, что цель там, по большей части, избавиться от кучи бойлерплейта с union. Мест, где можно прострелить ногу осталось ещё полным полно, это C, там от этого не уйти
Ну я там так по примеру понял, что регается функция с каким-то типом, ей даётся идентификатор, и ее нельзя вызвать с другим типом (вроде). Прикольно вобщем
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Егор
Типо систему типов более строгой сделать?
Нет. Просто укуриться и убить время на неюзабельное говно из макросов
источник

Е

Егор in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Нет. Просто укуриться и убить время на неюзабельное говно из макросов
Звёздочек много, значит кому-то да надо
источник

A

Alex Ф-ф-фэils!🌠︙... in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Нет. Просто укуриться и убить время на неюзабельное говно из макросов
++++++++
источник

O

Ofee in cxx.Дискуссионная
Егор
Ну я там так по примеру понял, что регается функция с каким-то типом, ей даётся идентификатор, и ее нельзя вызвать с другим типом (вроде). Прикольно вобщем
Ты смотри про ADT, это ж самое интересное, там создаётся тип, а функция одна
источник

Е

Егор in cxx.Дискуссионная
Ofee
Ты смотри про ADT, это ж самое интересное, там создаётся тип, а функция одна
Это без мат. базы можно понять? Звучит мотемотично
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Нет. Просто укуриться и убить время на неюзабельное говно из макросов
Юзабельность там чуть выше чем, на чистом C, я думаю...
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Юзабельность там чуть выше чем, на чистом C, я думаю...
И ошибки в макросах удобно дебажить?)))))))))
источник

Е

Егор in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
И ошибки в макросах удобно дебажить?)))))))))
gcc -C и дебажишь в виме
источник

O

Ofee in cxx.Дискуссионная
Егор
Это без мат. базы можно понять? Звучит мотемотично
Не знаю, зачем там мат-база, std::variant и макросная конструкция match, которая в зависимости от содержимого этого варианта выполняет разные ветки

void print_tree(const Tree *tree) {
 match(*tree) {
   of(MkEmpty) {
     return;
   }
   of(MkLeaf, number) {
     printf("%d\n", *number);
   }
   ofMany(MkNode, (left, number, right)) {
     print_tree(*left);
     printf("%d\n", *number);
     print_tree(*right);
   }
 }
}
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Егор
gcc -C и дебажишь в виме
Всё ясно, приятного аппетита
источник

Е

Егор in cxx.Дискуссионная
Ofee
Не знаю, зачем там мат-база, std::variant и макросная конструкция match, которая в зависимости от содержимого этого варианта выполняет разные ветки

void print_tree(const Tree *tree) {
 match(*tree) {
   of(MkEmpty) {
     return;
   }
   of(MkLeaf, number) {
     printf("%d\n", *number);
   }
   ofMany(MkNode, (left, number, right)) {
     print_tree(*left);
     printf("%d\n", *number);
     print_tree(*right);
   }
 }
}
какие-то шаблоны на си
источник

A

Alex Ф-ф-фэils!🌠︙... in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Всё ясно, приятного аппетита
источник

Е

Егор in cxx.Дискуссионная
не легче плюсы завести чем так извращаться
источник

O

Ofee in cxx.Дискуссионная
Егор
не легче плюсы завести чем так извращаться
Напомню, что на плюсах ещё нет паттерн-матчинга
источник

A

Alex Ф-ф-фэils!🌠︙... in cxx.Дискуссионная
Ofee
Напомню, что на плюсах ещё нет паттерн-матчинга
Есть
источник

A

Alex Ф-ф-фэils!🌠︙... in cxx.Дискуссионная
Свитч же
источник

O

Ofee in cxx.Дискуссионная
Это не паттерн-матчинг же
источник