다음의 직렬화 예제를 고려하면이 데이터가 const이고 직렬화 함수가 const 함수가 아닌 경우 데이터 저장에 어떻게 대처할 수 있습니까?부스트 직렬화가 실제로 const 객체를 저장하는 방법
어딘가에 const 캐스트가 있습니까?
struct Settings
{
Settings();
uint32_t buffers_size;
uint32_t messages;
};
template < class Archive >
void serialize(Archive& ar, Settings& settings, unsigned int /*version*/)
{
using boost::serialization::make_nvp;
ar
& make_nvp<uint32_t>("buffers_size", settings.buffers_size)
& make_nvp<uint32_t>("messages", settings.messages);
}
내 생각에 파일, 네트워크 스트림 등에 물건을 쓰는 데별로 도움이되지 않는'const' 및'volatile' 한정자는 무시됩니다. –
const 정확성이 필요한 경우 [serialize를 'save' ('const')와'load' (''const'')가 아닙니다.] (http://www.boost.org/doc/libs/release/libs/serialization/doc/serialization.html#splitting). –
@LucTouraille :로드/저장과 함께하는 prblem은 코드가 두 개로 분리되어 있으며 유지 관리가 어렵다는 것입니다. – Arthur