Ответ 1
Невозможно ли "просто" создать сериализатор < < и десериализатор → , который "просто" превратит сериализацию shptr в сериализацию указателя объекта? Если еще не сделано, я почти уверен, что это возможно в < 100 строк кода.
Кроме того, я знаю, что вы указали не спрашивать, но все же я буду: когда вы пытаетесь сериализовать переменную "X", которая является shptr, почему вы не можете просто сериализовать разыменованные * shptr? Это не кажется достаточной разницей для меня, чтобы беспокоиться о добавлении сериализации для smartptrs. Хм.. хорошо. эстетику. Но все же я думаю, что это выполнимо.
В любом случае, вы можете попасть в другую стену: если вы используете наследование классов и если вы переносите объекты в shptr с помощью указателя на базовый класс, у вас будет очевидная проблема, что сериализатор будет не знаю, что на самом деле упорядочено для сериализации. Но это классическая проблема для сериализации без RTTI, что, ну, вы хотите как-то решить, но это не проблема shptrs.
отказ от ответственности: последний раз, когда я использовал boost:: serialization, было несколько лет назад. Я на самом деле не пытался сериализовать shptr, но из того, что я помню, это была довольно открытая структура, относительно легко расширяемая для любого настраиваемого типа, поэтому я предполагаю, что shptrs не лучше, чем мои странные классы, to-serialize:)