Al usar la macro BOOST_SERIALIZATION_NVP
para crear un par nombre-valor para la serialización XML, el compilador permite compilar sin problemas el siguiente código, aunque el nombre del elemento no sea un XML válido elemento y un excepciones se inicia cuando intenta serializar en realidad el objeto en XML:serialización de refuerzo Caracteres NVP macro y no XML
BOOST_SERIALIZATION_NVP(_member[index])
una solución obvia es usar:
boost::serialization::make_nvp("ValidMemberName", _member[index])
Pero puede alguien sugerir una manera de modificar impulso de manera que el elemento ilegítima nombres desencadenarían una compilación n error? (Por lo tanto no depender de las pruebas unitarias para coger el anterior error sutil)
Editar:
Una idea es declarar de alguna manera una variable local maniquí con el nombre del elemento pasado a la macro, asumiendo que el conjunto de identificadores válidos en C++ es un subconjunto de elementos XML válidos. Sin embargo, no estoy seguro de que esto pueda hacerse.
Esto generará un error de tiempo de ejecución 'what(): nombre de etiqueta XML no válido' – alfC