Вложенные структуры Boost Fusion

Можно ли определить (или адаптировать) структуру Boost Fusion, которая содержит элементы Boost Fusion в одном выражении?

Например, как я могу адаптировать или определить что-то эквивалентное этому:

struct Outer
{
   int i;
   float j;
   struct Nested
   { 
      int a;
   } nested;
};

Где оба Outer а также Outer::Nested отражающие типы.

Определение всех внутренних типов в порядке наизнанку очень грязное и внешне раскрывает внутренние типы.

1 ответ

Вы должны быть в состоянии "определить" внутреннюю структуру, используя ее полное имя:

BOOST_FUSION_ADAPT_STRUCT(
  Outer::Nested,
  a
)

BOOST_FUSION_ADAPT_STRUCT(
  Outer,
  i,
  j,
  nested
)
Другие вопросы по тегам