Код: Выделить всё
struct ArgA {};
struct ArgB {};
struct ArgC {};
struct A
{
A(ArgA& param) {}
};
struct B
{
B(ArgB& param) {}
};
struct C
{
C(ArgC& param) {}
};
template
struct Alphabet
{
template
Alphabet(TArgs& ...params) : _alphabet(TLetters(params...)...) {}
std::tuple _alphabet;
};
int main()
{
ArgA argA; ArgB argB; ArgC argC;
Alphabet alphabet1(argA); // Compiles
Alphabet alphabet2(argA, argB); // Doesn't compile because argA and argB are passed to A, B and C constructors
Alphabet alphabet3(argA, argB, argC); // Ditto!
}
Возможно ли это? Возможно, использование std::integer_sequence для рекурсивного перебора пакета параметров TArgs в конструкторе Alphabet? Мой компилятор совместим только с C++11.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/793 ... -arguments