Предположим, что у меня есть классы Date
и классы Year
, Month
и Day
.
struct Date {
Date(Year year, Month month, Day day) : d(day), m(month), y(year) {};
Date(Month month, Day day, Year year) : d(day), m(month), y(year) {};
Date(Day day, Month month, Year year) : d(day), m(month), y(year) {};
Date(Day day, Year year, Month month) : d(day), m(month), y(year) {};
...
...
private:
Day d;
Month m;
Year y;
}
Это позволяет мне не иметь определенного расположения аргументов для Date
, так как у меня много перегрузок.
Можно ли автоматически сгенерировать все перестановки/перегрузки?
Просто, чтобы быть ясным:
- Перестановки - это только макет аргумента, ничего о них не должно измените, поскольку я знаю, что автоматизировать невозможно.
- Все сгенерированные перегрузки должны иметь тот же код, что и только макет аргументов изменяется не сама логика.