на поля класса неизвестных типов?
Ожидается вот такое инстанцирование
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{}
Но так нельзя из за двух троеточий.
Вообще, сложность решения во многом зависит от выбранного стандарта. Как предложено выше, на 20 всё относительно просто. На C++17 – по-сложнее: придётся переписать под SFINAE и частичную специализацию. В C++14/11 основным инструментом для реализации задуманного будет, вероятно страдание на грани экзистенциального и самоистязание
Обсуждают сегодня