Сериализация dlib на пользовательском объекте не работает в gcc - PullRequest
0 голосов
/ 26 октября 2018

У меня есть класс, определенный в пространстве имен.Я создал методы сериализации / десериализации, необходимые для dlib, чтобы сделать его сериализуемым вне пространства имен.Он хорошо работает в Windows с VC ++, но в Ubuntu с gcc - нет, показывая ошибку компиляции, говорящую, что метод не может быть найден.Когда я удаляю пространство имен из класса, сериализация работает нормально.

Это первая проблема, потому что я не знаю, почему это работает в одном компиляторе, а не в другом, и я бы предпочел оставить класс с пространством имен.

Другая проблема заключается в том, что мне нужно сериализовать класс, который не может быть без пространства имен, поэтому мне нужно заставить его работать с ним.

Любая идея приветствуется, и если потребуется дополнительная информация, я могу ее предоставить.

1 Ответ

0 голосов
/ 29 октября 2018

Я смог решить это. Проблема заключалась в том, что я объявлял функции сериализации / десериализации вне пространства имен классов, которые я хотел сериализовать. Я не знаю, почему он работает на VC ++, но теперь он работает в обоих компиляторах.

...