Сообщение Re[18]: Не могу понять ссылки в C++ от 30.06.2024 7:48
Изменено 30.06.2024 7:54 rg45
Re[18]: Не могу понять ссылки в C++
Здравствуйте, andrey.desman, Вы писали:
AD>Так не томи уже.
AD>boost::describe года 3 как вышел, не очень-то окаменеть успело. Хотя хз какой именно буст имеется в виду.
Чтоб не затягивать интригу, опишу пока на словах. Подход основан на том, что структуры раскладываются при помощи structured binding. Следующий "финт ушами" — это построить констрейнт поверх structured binding. Ну а дальше дело техники: сначала делаем унивирсальный компайл-тайм визитор, позволяющий декомпозировать объект произвольной структуры в произвольную вызываемую сущность. Разумеется, вызов визитора также защищен констрейнтом. Ну а поверх этого уже можно делать и операторы, и сериализацию и т.д. и т.п. Вложенность структур поддерживается автоматом. Конечно же, такой подход дает доступ к значениям полей структуры, но не дает доступа к именам мемберов. Для бинарной сериализации этого вполне достаточно. Сериализацию в xml и json, для которых требуются сигнатуры полей, тоже можно костылить, в принципе, но сигнатуры придется как-то генерить.
Более-менее функциональный пример сказанного будет вечером.
AD>Так не томи уже.
AD>boost::describe года 3 как вышел, не очень-то окаменеть успело. Хотя хз какой именно буст имеется в виду.
Чтоб не затягивать интригу, опишу пока на словах. Подход основан на том, что структуры раскладываются при помощи structured binding. Следующий "финт ушами" — это построить констрейнт поверх structured binding. Ну а дальше дело техники: сначала делаем унивирсальный компайл-тайм визитор, позволяющий декомпозировать объект произвольной структуры в произвольную вызываемую сущность. Разумеется, вызов визитора также защищен констрейнтом. Ну а поверх этого уже можно делать и операторы, и сериализацию и т.д. и т.п. Вложенность структур поддерживается автоматом. Конечно же, такой подход дает доступ к значениям полей структуры, но не дает доступа к именам мемберов. Для бинарной сериализации этого вполне достаточно. Сериализацию в xml и json, для которых требуются сигнатуры полей, тоже можно костылить, в принципе, но сигнатуры придется как-то генерить.
Более-менее функциональный пример сказанного будет вечером.
Re[18]: Не могу понять ссылки в C++
Здравствуйте, andrey.desman, Вы писали:
AD>Так не томи уже.
AD>boost::describe года 3 как вышел, не очень-то окаменеть успело. Хотя хз какой именно буст имеется в виду.
Чтоб не затягивать интригу, опишу пока на словах. Подход основан на том, что структуры раскладываются при помощи structured binding. Следующий "финт ушами" — это построить констрейнт поверх structured binding. Ну а дальше дело техники: сначала делаем универсальный компайл-тайм визитор, позволяющий декомпозировать объект произвольной структуры в произвольную вызываемую сущность. Разумеется, вызов визитора также защищен констрейнтом. Ну а поверх этого уже можно делать и операторы, и сериализацию и т.д. и т.п. Вложенность структур поддерживается автоматом. Конечно же, такой подход дает доступ к значениям полей структуры, но не дает доступа к именам мемберов. Для бинарной сериализации этого вполне достаточно. Сериализацию в xml и json, для которых требуются сигнатуры полей, тоже можно костылить, в принципе, но сигнатуры придется как-то генерить.
Более-менее функциональный пример сказанного будет вечером.
AD>Так не томи уже.
AD>boost::describe года 3 как вышел, не очень-то окаменеть успело. Хотя хз какой именно буст имеется в виду.
Чтоб не затягивать интригу, опишу пока на словах. Подход основан на том, что структуры раскладываются при помощи structured binding. Следующий "финт ушами" — это построить констрейнт поверх structured binding. Ну а дальше дело техники: сначала делаем универсальный компайл-тайм визитор, позволяющий декомпозировать объект произвольной структуры в произвольную вызываемую сущность. Разумеется, вызов визитора также защищен констрейнтом. Ну а поверх этого уже можно делать и операторы, и сериализацию и т.д. и т.п. Вложенность структур поддерживается автоматом. Конечно же, такой подход дает доступ к значениям полей структуры, но не дает доступа к именам мемберов. Для бинарной сериализации этого вполне достаточно. Сериализацию в xml и json, для которых требуются сигнатуры полей, тоже можно костылить, в принципе, но сигнатуры придется как-то генерить.
Более-менее функциональный пример сказанного будет вечером.