На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: JoeUser, Qraizer
Страницы: (4) « Первая ... 2 3 [4]  все  ( Перейти к последнему сообщению )  
> Метаклассы в C++, Мечта или реальность?
    Парни, я осознаю, что для малоподготовленного (ну как для мня) - вышеприведенное есть лютая дичь.
    Приведите примеры, плс, получаемого профита ... ну или обозначьте границы, когда он действительно может появиться.
    Мои программные ништякиhttp://majestio.info
      Цитата JoeUser @
      Парни, я осознаю, что для малоподготовленного (ну как для мня) - вышеприведенное есть лютая дичь.

      Если делать это "старым" способом (и заглянуть под капот) - дичь будет не менее лютая.
      Цитата JoeUser @
      Приведите примеры, плс, получаемого профита ...

      Получаемый профит в том, что производимые манипуляции с типами - более явные и (главное) в императивном, а не функциональном стиле. Попробуй реализовать тот же визитор на "обычном" C++ - и поймёшь, о чём речь. :)
      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
      Морган Фриман
      Реализация шаблонов Jinja2 для C++ Jinja2 C++
        Если я правильно распознал происходящее, что совсем не факт, то это не совсем то. Смотри.
        Ты в вариадик Types интегрируешь интерфейс dispIface. Это архитектурная ошибка, т.к. создаёт зависимость классов пользователя от класса абстрактного диспетчера. Это плохо, т.к. диспетчер создаёт интерфейс визитора в процессе своего инстанцирования, поэтому эта зависимость ведёт к циклу. Вместо этого подразумевается, что визит-метод документируется базовым классом в иерархии, и производные его лишь перекрывают, диспетчер же просто зовёт метод базового класса, а не какого-то интерфейса.
        Далее. Свои внутренние классы акцепторов диспетчер генерирует сам, метаклассы ему для этого не нужны. Поэтому цикл по вариадику по сути лишний. Его следовало бы делать по списку классов в иерархии. Вот его бы получить... К тому же это решение ограничено двупараметрическим мультиметодом, тогда как у меня ещё в C++03 были обобщённые n-параметрические. По списку параметров диспетчер тоже итерируется классически.
        Сообщение отредактировано: Qraizer -
        Одни с годами умнеют, другие становятся старше.
          Ну, я пытался на ходу что-то путное выдумать.
          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
          Морган Фриман
          Реализация шаблонов Jinja2 для C++ Jinja2 C++
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script Execution time: 0,0868 ]   [ 18 queries used ]   [ Generated: 20.07.19, 01:44 GMT ]