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

Мне надо инстанцировать using в классе только если его используют.

Кто-то может знает, как это сделать можно?
template <class... List>
struct A {
using head = head<List...>;
using tail = tail<List...>; // decltype(tail<List...>) == A<...>
};
Понятно, что using tail запустит раскрутку всего списка аргументов, потому хотелось бы, чтобы это при надобности происходило только. Хотя даже если так уметь, то он не до конца будет раскручиваться, а только на столько уровней, на сколько надо. Как будто бы такое мб и не делается, потому что могут быть ситуации вот такие: A<List...>::tail::tail::tail, и не очень понятно, как их детектить. Но вдруг есть хоть какие-то варанты.

4 ответов

7 просмотров

специализация / if constexpr

Vanya-Khodor Автор вопроса
Kelbon
специализация / if constexpr

Не понимаю, в каком направлении с ними двигаться.

Сделай tail шаблоном

Vanya-Khodor Автор вопроса
Kirill Bolshakov
Сделай tail шаблоном

Ну видимо так и придётся, жаль только, что использование становится некрасивым.

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
83
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Карта сайта