Xenocephal
Member
Откуда:
Сообщений: 666
|
| VirtualMan | Как насчет указателя на объект?
|
КАКОЙ объект? Мне нужна возможность определения произвольного множества, не обязательно упорядоченного (это - особо важное требование).
|
| Xenocephal | | И, кстати, компилируется в очень неэффективный код. |
мы обсуждаем язык, а не компилятор
|
Нет, это проблема именно языка. Поскольку неэффективный код создаётся при разворачивании темплейта. И язык темплейтов достаточно убог для того, чтобы не было никакой возможности сделать код эффективным.
|
| Xenocephal | Кстати, второй мой любимый пример для оценки качества метаязыков - компиляция регулярного выражения. Заданного в виде строки. В эффективный код. C++ с этим примером просто не справится - в языке шаблонов нет средств для работы со строками. |
Снова передергиваете, уважаемый! Может еще скажете, что в С++ нет поддержки нейронных сетей? Работы с матрицами? Векторами? Это все реализуется с помощью конструкций языка. Хорошо-ли, плохо-ли это другой вопрос, но реализуется. |
Это НЕ РЕАЛИЗУЕТСЯ конструкциями языка. Мне надо, чтобы конструкция вида match(regexp("[a|b]+"), str) была развёрнута при компиляции в эффективную реализацию этого константного регулярного выражения. В настоящих метаязыках - таких, как Lisp или Nemerle или даже Template Haskell это делается тривиально - поскольку там язык макр - это сам основной язык со всеми своими фичами. А в C++ язык шаблонов - это другой язык, тупой и убогий. И благодаря этому C++ - очень негибкий и нерасширяемый. |