Re[10]: GCC patch: "static_print"
От: alex_public  
Дата: 17.07.17 15:02
Оценка:
Здравствуйте, _NN_, Вы писали:

_>>В D в этом случае будет ошибка компиляции со вполне вменяемым сообщением. Единственный минус тут в том, что указывать ошибка будет на строчку с mixin, а не на функцию makeStruct.

_NN>Потом появятся библиотеки для объектного создания этого дела и будет:
_NN>
_NN>string makeStruct(string name)
_NN>{
_NN> return createStruct(name).addField(makeField("int", "x")).build();
_NN>}
_NN>

_NN>Я даже уверен, что кто-то такое сделал.
_NN>Только типизация пропадает сразу после выхода из этой функции да и писать такой код вместо цитирования неочень приятно.

Возможно. Но для людей имеющих в данный момент метапрограммирование только на шаблонах C++ и такое может показаться замечательным. )

_>>Это похоже ближе к макросам Rust или Nim. И оно конечно приятнее, но требует по сути введения нового языка в компилятор C++. Я в принципе не против, но сомневаюсь что на такое пойдут. А вот добавить одну скромную и несложную функцию типа mixin по идее могли бы...

_NN>Всё остальное это полумеры.
_NN>Можно конечно решить где предел, как шаблоны C++, шаблоны D, а можно сразу сделать как надо и получить все плюшки.

Ну я уже писал раньше, что как раз являюсь сторонниками "максимального" развития метапрограммирования в C++. Однако я при этом ещё и реалист. Так что предпочту получить хоть что-то (например аналог mixin из D), чем не получить ничего, предаваясь мечтаниям о полноценных синтаксических макросах.

_NN>Кстати в Rust насколько я понял там нет отладки, максимум это: cargo-expand.

_NN>Я говорю про такие, которые можно отлаживать, как в Nemerle, например.

На мой взгляд для отладки подобных вещей гораздо полезнее наличие отладочной печати. Кстати, для решения типа mixin в этой роли хватило бы как раз static_print из данной темки. А вот для полноценных макросов нужно уже что-то типа print_ast, что впрочем тоже не особая проблема.
Re[11]: GCC patch: "static_print"
От: _NN_ www.nemerleweb.com
Дата: 17.07.17 19:10
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ну я уже писал раньше, что как раз являюсь сторонниками "максимального" развития метапрограммирования в C++. Однако я при этом ещё и реалист. Так что предпочту получить хоть что-то (например аналог mixin из D), чем не получить ничего, предаваясь мечтаниям о полноценных синтаксических макросах.

Это пройденный этап.
"Александреску" появится гораздо раньше чем кажется.

Поэтому лучше сразу по максимуму.
Тогда и код проще будет и полезности больше.

_>На мой взгляд для отладки подобных вещей гораздо полезнее наличие отладочной печати. Кстати, для решения типа mixin в этой роли хватило бы как раз static_print из данной темки. А вот для полноценных макросов нужно уже что-то типа print_ast, что впрочем тоже не особая проблема.

У меня есть опыт в отлаживании макросов и могу сказать, что это гораздо лучше чем полумеры вида print_ast
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: GCC patch: "static_print"
От: Кодт Россия  
Дата: 24.07.17 09:00
Оценка: 8 (1)
Здравствуйте, Alexander G, Вы писали:

AG>Image: tricky-twisted.jpg

Билл Гейтс показывает на пальцах рогатую сферу Александера
Перекуём баги на фичи!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.