В настоящее время я работаю над проектом, в котором я использую одни и те же макросы снова и снова в том же порядке для сериализации класса. Я использую макросы ускорения для сериализации. А именно:Объединить два (три) макроса
BOOST_CLASS_EXPORT(SameClass)
BOOST_SERIALIZATION_FACTORY_0(SameClass)
Как совместить эти два в один макрос.
#define registrateDMP(arg) BOOST_CLASS_EXPORT(arg) BOOST_SERIALIZATION_FACTORY_0(arg)
не работает. Кроме того, я хотел бы, чтобы добавить третий макрос в полный макрос, если это действительно возможно.
#define DMPTYPE_BASICDMP_GUID boost::serialization::guid<SameClass>()
Если я использую три макросов самостоятельно моя программа работает, но так как звонки для макросов всегда в том же порядке, и я использую их для многих различных случаев и хотят использовать их для более, а также было бы неплохо упростить команды одному макросу. Может ли кто-нибудь помочь? Спасибо
Не могли бы вы показать ошибки, которые вы получаете, когда вы используете 'registrateDMP' пожалуйста? Я ожидаю, что это сработает. (BTW 'registerDMP' может быть лучше по-английски, если вам интересно.) –
' неизвестное местоположение (0): фатальная ошибка в «test_BasicDMP»: std :: logic_error: basic_string :: _ S_construct null not valid' - ошибка, которую я получаю в тестовом файле который обычно работает. – Lenny
Это ошибка вашего кода, которая встречается во время выполнения и не имеет никакого отношения к какому-либо макросу. Если возникла какая-либо проблема с макросом, ваш код не будет компилироваться в первую очередь. –