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

Добрый вечер! Подскажите пожалуйста, как проще всего можно обойти типы

std::tuple, не инстанцируя его? Я ничего лучше этого не придумал https://pastebin.com/ZWgZrrZ9

11 ответов

14 просмотров

Не инстанциируя то вообше невозможно..

Oleg-Stepanov Автор вопроса

Спасибо, это я сделал. Теперь интересно, как можно избавиться от аргумента? Для этого нужно переносить операцию в шаблонный параметр или можно и без этого?

Oleg Stepanov
Спасибо, это я сделал. Теперь интересно, как можно...

Я думаю там все равно будет инстанциирование

Oleg-Stepanov Автор вопроса
Ilya Zviagin
Не инстанциируя то вообше невозможно..

Я имел в виду не создавая переменную, конечно 🙂

Oleg Stepanov
Спасибо, это я сделал. Теперь интересно, как можно...

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

Oleg-Stepanov Автор вопроса

Это шаблонная функция, и тип там виден без аргумента. Грубо говоря, сейчас у меня такой код: #include <tuple> #include <iostream> template<class Tuple, class Op> void for_each_type(Op &&f) { [&f]<class... Ts>(std::tuple<Ts...> *) { (f(static_cast<Ts *>(nullptr)), ...); }(static_cast<Tuple *>(nullptr)); } int main() { for_each_type<std::tuple<int, float, double>>([]<typename T>(T *) { std::cout << typeid(T).name() << "\n"; }); } и я хочу избавиться от ненужного "T *" в конце

Oleg Stepanov
Это шаблонная функция, и тип там виден без аргумен...

template<class Tuple, class Op> void for_each_type(Op&& f) { [&f]<typename... Ts>(std::tuple<Ts...>*) { (f.template operator()<Ts>(), ...); }(static_cast<Tuple*>(nullptr)); }

Oleg-Stepanov Автор вопроса

Спасибо, то что надо, но этот вариант положил Apple clang 12.0 с segfault 🙂

Oleg Stepanov
Спасибо, то что надо, но этот вариант положил Appl...

может он не любит такой вариант вызова)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта