Habr<p>Type Loopholes: решая нерешаемое. Рефлексия времени компиляции</p><p>Лупхолы — это техника, позволяющая манипулировать глобальным состоянием компилятора, добавляя значения и считывая их. Эта техника позволяет решать многие задачи, некоторые из которых будут рассмотрены в статье: Узнать, какие параметры принимает конструктор типа. Узнать, с какими шаблонными параметрами вызывался метод/функция с ADL. Как сделать метапрограммирование с типами более похожим на обычный код, где есть состояние.</p><p><a href="https://habr.com/ru/articles/824574/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/824574/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%BB%D1%83%D0%BF%D1%85%D0%BE%D0%BB%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>лупхолы</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B5%D1%82%D0%B0%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>метапрограммирование</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D1%84%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>рефлексия</span></a> <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>c</span></a>++ <a href="https://zhub.link/tags/constexpr" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>constexpr</span></a></p>