Loki — библиотека для языка программирования C++, написанная Андреем Александреску как часть книги «Современное проектирование на С++: Обобщённое программирование и прикладные шаблоны проектирования».
Библиотека построена на шаблонном метапрограммировании и активно использует возможности языка C++ для обобщённого программирования.
Локи — бог хитрости и озорства германо-скандинавской мифологии. Автор надеется, что оригинальность и гибкость библиотеки будут напоминать читателям книги норвежского бога.
Разработка
Изначально библиотека работала только с компиляторами, наиболее хорошо поддерживающими стандарт C++, но позже была перенесена (иногда не полностью) на большинство других (включая старые Borland C++ 6 и Visual C++ 6). Разработчики компиляторов часто используют библиотеку как эталонный тест, позволяющий определить совместимость со стандартом.
Loki вышла за пределы книги, продолжает развиваться и новые версии библиотеки доступны на SourceForge.net. Благодаря вкладу множества людей данная библиотека хорошо проверена и обладает высокой отказоустойчивостью.
Состав проверки условий на стадии компиляции; отображение целочисленных констант на типы; списки типов; мультиметоды; обобщённые реализации шаблонов проектирования: абстрактная фабрика, одиночка, посетитель.
См. также Boost — близкая по принципам разработки, но значительно более обширная библиотека; Современное проектирование на C++ — книга, для которой изначально разрабатывалась библиотека.
Ссылки Loki — домашняя страница библиотеки.
Категория:Библиотеки C++