История изменений
Исправление m0rph, (текущая версия) :
Ну так покажите, когда нужен псевдо-идентификатор типа именно в compile-time. В compile-time вполне себе самими типами можно оперировать.
Если я приведу один пример, над которым в свое время работал исключительно из академического интереса, меня закидают тухлыми помидорами. Ну чтож, попробуем:
Один из моих лютых велосипедов - некий ServiceManager. Данный класс призван решить одну из проблем использования одиночек - неопределенность порядка создания/уничтожения. Сам ServiceManager является одиночкой, но при этом постулируется, что он должен быть единственной одиночной в программе. Он может регистрировать конкретные сервисы - модули, доступ к которым требуется из разных частей программы и которые иначе (если предположить, что разработчик решиться их использовать) были бы одиночками. ServiceManager берет на себя вопрос создания сервисов в правильном порядке (учитываются зависимости между ними), а так же их правильного удаления. Вот для регистрации сервисов в этом менеджере с учетом зависимостей и требуется знать id каждого конкретного сервиса в compile time.
Исходная версия m0rph, :
Ну так покажите, когда нужен псевдо-идентификатор типа именно в compile-time. В compile-time вполне себе самими типами можно оперировать.
Если я приведу один пример, над которым в свое время работал исключительно из академического интереса, меня закидают тухлыми помидорами. Ну чтож, попробуем:
Один из моих лютых велосипедов - некий ServiceManager. Данный класс призван решить одну из проблем использования одиночек - неопределенность порядка создания/уничтожения. Сам ServiceManager является одиночкой, но при чем постулируется, что он должен быть единственной одиночной в программе. Он может регистрировать конкретные сервисы - модули, доступ к которым требуется из разных частей программы и которые иначе (если предположить, что разработчик решиться их использовать) были бы одиночками. ServiceManager берет на себя вопрос создания сервисов в правильном порядке (учитываются зависимости между ними), а так же их правильного удаления. Вот для регистрации сервисов в этом менеджере с учетом зависимостей и требуется знать id каждого конкретного сервиса в compile time.