cpprussia C++ Russia 2019 Мск (19.04.2019 — 20.04.2019)

Метаклассы в C++17: фантастика? Реальность!

img

Сергей расскажет, как именно поддержку метаклассов можно реализовать в виде сторонней утилиты (на базе clang frontend) и что можно/нужно сделать для того, чтобы интегрировать результаты работы этой утилиты в собственный код.

Доклад посвящён одному из подходов реализации метаклассов (пропозал p0707 rev3 — последний доступный публично на текущий момент) для тех версий компиляторов, которые не поддерживают ни статической рефлексии, ни собственно метаклассов из коробки. В докладе будет рассказано, как именно поддержку метаклассов можно реализовать в виде сторонней утилиты (на базе clang frontend) и что можно/нужно сделать для того, чтобы интегрировать результаты работы этой утилиты в собственный код. Будут относительно подробно (насколько позволяет время) рассмотрены различные аспекты работы с clang AST, а именно: как результаты анализа clang C++ AST можно использовать для генерации кода, а также для реализации интерпретатора C++.

Доклад рассчитан на аудиторию, знакомую с концепцией метаклассов, предлагаемых Саттером, а также (крайне желательно) с основными аспектами реализации clang frontend.