Здравствуйте, remark, Вы писали:
R>В связи с необходимость часто применять CRTP сделал для себя следующий helper.
R>Пример использования:
R>Helper решает следующие задачи:
R>1. Форсирует, что класс derived_t является производным от А.
R>2. Форсирует, что класс derived_t является MDT (most derived type).
R>3. Предоставляет функции derived(), с помощью которых удобно конвертировать базовый класс в производный.
R>Может ещё кому пригодится. Комментарии приветствуются
Зачем нужен crtp_helper_t?
R>При использовании лучше пистаь не:
R>R>class A : public crtp_t<A, derived_t>
R>
R>а:
R>R>class A : public crtp_t<A<derived_t>, derived_t>
R>
R>т.к. глупая vc80 иначе не понимает (vc71 как ни странно понимает)
глупый gcc тоже иначе не понимает.
R>