Используйте libxml , который выполняет проверку , а имеет режим потоковой передачи.
Я думаю, что это как-то связано с тем, что Visual C ++ не знает размер указателя на член в этот момент. Посмотрите, например, этот отчет о дефекте ( здесь - еще одна проблема с указателем на переменную-член). Я думаю, что вы обнаружили еще одну ошибку Visual C ++, о которой следует сообщить на connect.microsoft.com.
Я наткнулся на ту же проблему. Поддержка аргументов шаблона указателя на член все еще ограничена в VC ++ (см. отчет об ошибке ).
В моем случае я мог бы обойти это, используя шаблонную функцию iso класс шаблона:
template< typename Class > struct CMemberDumper {
Class& object;
template< typename M > void visit_member( M C::*pm ) {
std::cout << object.*pm;
}
};
]