Я пролистал статью о структурированных привязках здесь http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0144r0.pdf но я не смог понять, к каким типам структур можно привязать синтаксис. Я думаю, что структура должна быть агрегатного типа. Или что-то только с публичными членами данных.
Есть ли какие-то предостережения, которые я пропускаю?
Если вы не хотите специализироваться std::tuple_size
, std::tuple_element
а также get
для вашего типа тогда [dcl.decomp] требует:
В противном случае все
E
Нестатические члены данных должны быть прямымиE
или того же однозначного
общественный базовый классE
,E
не должны иметь анонимного члена профсоюза, а количество элементов в
список идентификаторов должен быть равен количеству нестатических элементов данныхE
,
Таким образом, по сути, все члены данных должны быть объявлены в одном классе, и все они должны быть открытыми, и вам нужно предоставить то же количество имен, что и членов.
Других решений пока нет …