Я хочу создать пользовательскую структуру кортежей с использованием выражений сгиба, сделав рекурсивную структуру
Я хотел бы, чтобы кортеж имел индексированный доступ к его элементам и конструктору, чтобы поместить элементы
Я временно выполняю функцию, называемую (и заполняется, и это будет заполнять, и это будет заполнять, и это будет заполнять, и это будет заполнять функции, и это будет заполнять (и наполнение (и наполнение (и заполняет (и заполняет его, и это будет заполнить (и наполнение (и наполнение (и наполнение (и наполнение (и наполнение (и наполнение (и заполнение (и заполнение (и заполнение (). get_element () функция, которую я реализую позже, но я мог бы обновить сообщение, если мне нужна помощь в этом, а также
Как я хочу, чтобы он работал:
tuple name(2, 0.76, "apple");
int some_index = 2;
auto some_element = name.get_element(some_index); // returns "apple"
< /code>
Это весь код: < /p>
template
struct tuple
{
element fold_element;
int index;
tuple* next_fold_element;
tuple() {};
void fill(element new_fold_element, pack... new_fold, int new_index = 0)
{
fold_element = new_fold_element;
index = new_index;
if (index < sizeof...(new_fold))
{
next_fold_element->fill(index+1,new_fold...);
}
};
};
int main()
{
tuple yo;
yo.fill(0, 1, 2, 3, 4);
}
< /code>
Это дает эту ошибку: < /p>
'tuple :: fill': функция не принимает 5 аргументов < /p>
Я предполагаю, что происходит, что она использует один и тот же шаблон, что и первая функция. Таким образом, он использует один меньший аргумент в соответствии с итерацией, но из кода, который я написал, компилятор выводит аргументы функций, чтобы всегда быть начальной суммой аргумента.
Я не знаю, как решить эту проблему.
Подробнее здесь: https://stackoverflow.com/questions/797 ... truct-in-c