Re[7]: авторегистрация типов в статической библиотеке
От: Erop Россия  
Дата: 17.04.13 08:43
Оценка:
Здравствуйте, cheqa, Вы писали:

C>Собственно, этого и хотелось избежать. Т.е. мне всё равно придётся проверять по дефайнам, что что-то в сборку входит, и дёргать оттуда символ. Принципиально ничем не отличается от варианта со свитчём.


Не прийдётся.
Ты просто явно генеришь один исходник по списку играющих в эту игру билиотек прямо в своём билдовом скрипте. И всё. Типа списко вида lib1, lib2, lib3 у тебя уже должен же быть?
Исходник генеришь вида:
#include "LinkStaticRegistrarEnforcers.h"
namespace LinkStaticRegistrarEnforcers {
    static StaticLibEnforcer usedLibs[] = { lib1, lib2, lib3 };
    void CheckAll() { StaticLibEnforcer::CheckAll( usedLibs ); }
}

LinkStaticRegistrarEnforcers::CheckAll дёргаешь всегда, даже если он пустой. Фабрику же ты всё равно линкуешь? Вот делаешь у этой фабрики статический метод init( bool checkUnusedRegistrars = false ), а из него уже дёргаешь, если передали true...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.