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

Друзья. Возможно ли создать шаблонный класс, параметризируемый неопределенным количеством указателей

на поля класса неизвестных типов?

Ожидается вот такое инстанцирование
c<&A::i, &A::j> a();
c<&B::i, &B::j, &B::k> b();

Сложность вызывает необходимость с одной стороны объявить variadic на типы указателей, а с другой - на них самих. То есть, кажется, что должно быть так:


template<class T, class ... U, U T::* ... M> class c{}


Но так нельзя из за двух троеточий.

1 ответов

4 просмотра

Вообще, сложность решения во многом зависит от выбранного стандарта. Как предложено выше, на 20 всё относительно просто. На C++17 – по-сложнее: придётся переписать под SFINAE и частичную специализацию. В C++14/11 основным инструментом для реализации задуманного будет, вероятно страдание на грани экзистенциального и самоистязание

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

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

подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
11
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Народ, есть возможность объяснить VS Code, что некий lua-модуль стандартный и грузится по умолчанию? Т.е. хост программа добавляет этот модуль наряду с модулями string, debug ...
Sl
9
Добрый день. Абракадабра в 12-й студии ввела новый тип поля БД TSQLTimeStampOffset, использую в постгресе timestampz и вот с 12-й версии начались чудеса! До этого поля times...
Delphi Photo
9
Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта