Предположим, у меня есть классы Date и классы Year, Month и Day.
[code]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; } [/code]
Это позволяет мне не использовать определенную структуру аргументов для даты, поскольку у меня много перегрузок.
[b]Могу ли я автоматически генерировать все перестановки/перегрузки?[/b]
Просто для ясности:
[list] [*]Перестановки касаются только раскладки аргументов, ничего о них следует изменить, поскольку я знаю, что это невозможно автоматизировать. [*]Все сгенерированные перегрузки должны иметь один и тот же код, поскольку меняется только расположение аргументов а не сама логика. [/list]