Я ищу шаблон или технику C ++, которая позволяет избежать некоторой репликации кода.
Я использую оптимизацию пустой базы для некоторых алгоритмов. Когда я наследую от класса, имеющего подробные аргументы шаблона, бывает сложно вводить тот же самый подробный тип в списке инициализатора члена и в качестве основы класса.
Придуманный пример :
template <uint32_t Port, uint32_t Pin>
class Pin;
-
template <typename T>
struct ActiveHigh;
template <uint32_t Port, uint32_t Pin>
struct ActiveHigh : Pin<Port, Pin> // <-- First entry.
{
ActiveHigh() : Pin<Port, Pin>{ false } {} // <-- Duplicate entry.
};
Я пишу линтер на C ++, который имеет определенную особенность, которая должна действительно использовать оптимизация пустой базы . Благодаря этому шаблону буквально тысячи строк повторяются. У кого-нибудь есть шаблон, который они используют, чтобы преодолеть этот запах кода?
Редактировать 1
Это то, что у меня есть , но это своего рода плохая необходимость писать имя типа при каждом создании.