Создание индивидуальной структуры кортежа в C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание индивидуальной структуры кортежа в C ++

Сообщение Anonymous »

Я хочу создать пользовательскую структуру кортежей с использованием выражений сгиба, сделав рекурсивную структуру
Я хотел бы, чтобы кортеж имел индексированный доступ к его элементам и конструктору, чтобы поместить элементы
Я временно выполняю функцию, называемую (и заполняется, и это будет заполнять, и это будет заполнять, и это будет заполнять, и это будет заполнять функции, и это будет заполнять (и наполнение (и наполнение (и заполняет (и заполняет его, и это будет заполнить (и наполнение (и наполнение (и наполнение (и наполнение (и наполнение (и наполнение (и заполнение (и заполнение (и заполнение (). 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»