170 похожих чатов

Подскажите, есть функция такого вида: void smth(std::vector vector, ...); Есть другая функция

такого вида:
void smth123(...);

Могу ли я внутри функции smth вызвать функцию smth123 и передать все параметры под ...? Например такого плана не работает:
void smth(std::vector vector, ...)
{
smth123(...);
}

17 ответов

13 просмотров

читайте про variadic templates

А тут ... Что обозначает?

Денис-Кузнецов Автор вопроса
Denis P
читайте про variadic templates

С variadic templates не выйдет, эти функции представляют из себя отдельную библиотеку, и на этапе компиляции этой библиотеки не известно, какие будут аргументы у функций. Я думал делать макросы, но это не совсем то

Denis P
читайте про variadic templates

но у него эллипс а не темплейт

Денис-Кузнецов Автор вопроса
Ilya Zviagin
А тут ... Что обозначает?

Аргументы, которые могут быть чем угодно

Денис Кузнецов
С variadic templates не выйдет, эти функции предст...

если это и правда не псевдокод а там прям элипсис, то без макросов никак всё равно

Тогда вторая твоя функция не валидная, у функции с элипсисом хотя бы один аргумент обязан быть

Денис-Кузнецов Автор вопроса
Ilya Zviagin
Тогда вторая твоя функция не валидная, у функции с...

Это псевдокод, у второй функции есть еще аргумент, для упрощения не указал его просто)

Так что ответ - нет, не можешь. Ты можешь из элипсиса разобрать аргументы и вызвать с ними функции с фиксированным числом аргументов.

Денис Кузнецов
Это псевдокод, у второй функции есть еще аргумент,...

Тогда давай не псевдокод. Я ж специально спросил...

Денис Кузнецов
Это псевдокод, у второй функции есть еще аргумент,...

В функции с элипсисом ты обязан разобрать все параметры на переменные. Передать их в другую функцию возможности нет. С вариадик шаблонами другое, там есть, но это шаблоны

Денис-Кузнецов Автор вопроса
Ilya Zviagin
В функции с элипсисом ты обязан разобрать все пара...

Это жаль, ну что поделать, буду искать другие варианты

Денис Кузнецов
С variadic templates не выйдет, эти функции предст...

Мне кажется, решать что-бы то ни было с помощью элипсиса — крайне сомнительная идея. Почему бы не определить некоторый интерфейс, который должны поддерживать аргументы smth123 и не передавать их в каком-нибудь контейнере? Вы же не совершенно несвязанные типы собираетесь передавать?

Денис Кузнецов
С variadic templates не выйдет, эти функции предст...

Ну так поставляй хедеры, в чем проблема?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта