Доступ к имени поля Boost Fusion Map
Мы пытались использовать некоторые из методов Boost Fusion для записи обычной структуры c в файл. XML-файл кажется хорошим способом сбора данных и делает его совместимым с другими инструментами или редактируемым вручную. Кажется, что у меня почти есть это, но что-то фундаментальное, кажется, отсутствует. Я'я использую что-то очень похожее на то, чтоs на странице быстрого запуска boost :: fusion:http://www.boost.org/doc/libs/1_54_0/libs/fusion/doc/html/fusion/quick_start.html, В качестве примечания я внимательно посмотрел здесь и на повышениес документацией, но никто, кажется, не обращается к имени поля.
struct print_xml
{
template
void operator()(T const& x) const
{
std::cout
< ''
;
}
};
Я хочу использовать его следующим образом:
BOOST_FUSION_ADAPT_STRUCT(
myStructType,
(double, val1)
(double, val2)
(char, letter)
(int, number)
)
myStructType saveMe = { 3.4, 5.6, 'g', 9};
for_each(saveMe, print_xml());
В других случаях я определял структуру следующим образом, но все же не повезло:
namespace fields{
struct val1;
struct val2;
struct letter;
struct number;
}
typedef fusion::map< fusion::pair,
fusion::pair,
fusion::pair,
fusion::pair > myStructType;
Я знаю, что сначала нет члена, но на самом деле должно быть, чтобы получить доступ к имени поля! Код, который у меня работает, отлично работает с x.second, но потом нея могу получить то, что мне нужно, чтобы получить имя поля. Как еще я могу это сделать? Спасибо!