Здравствуйте, Shmj, Вы писали:
S>Если уж так хочется компил-тайма — то почему бы не сделать его полноценным? Пусть не давать доступ к системным функциям, т.е. не давать возможности создавать файлы — но дать возможность статических переменных внутри функции, дать возможность простого и стандартизированного доступа к списку членов структуры/класса. Чтобы прекратить этот изврат в конце концов.
Я думаю, дело не в полноценности-неполноценности. Эта-то проблема давно решается с помощью древней, как UNIX System 7, парадигмы автоматической генерации кода во время сборки с помощью специально написанных для этой цели программ или скриптов.
Проблема C++ в том, что там два языка в одном, построенных на очень разных парадигмах. Сам по себе C++ — имперический язык, в стили Си. А вот система евонных темплейтов — ленивый, функциональный, строгий язык. Тьюринг-полный, с организацией циклов с помощью рекурсии и с хранением значений с помощью typedef. Такой покалеченный Haskell. И люто неудобный.