如何在 c++ 中使用 boost:serialization 时解决"sizeof"错误?
How to resolve "sizeof" error while using boost:serialization in c++?
我正在使用boost :: serialization,以下是我的类,我尝试在主函数中序列化此类对象。
#include <unistd.h>
#include <errno.h>
#include <arpa/inet.h>
#include <map>
#include <sstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/access.hpp>
#include <boost/static_assert.hpp>
using namespace boost;
using namespace std;
class gps_position
{
public:
int i ;
int j;
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & i;
ar & j;
}
gps_position(){};
gps_position(int a, int b):i(a), j(b){};
};
int main()
{
std::stringstream ss;
boost::archive::text_oarchive ar( ss );
gps_position obj(10, 20);
ar << obj;
return 0;
}
但是我正在遵循汇编错误:
/usr/include/boost/archive/detail/oserializer.hpp: In function 'void boost::archive::save(Archive&, T&) [with Archive = boost::archive::text_oarchive, T = gps_position]':
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from 'void boost::archive::basic_text_oarchive<Archive>::save_override(T&, int) [with T = gps_position, Archive = boost::archive::text_oarchive]'
/usr/include/boost/archive/detail/interface_oarchive.hpp:78: instantiated from 'Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) [with T = gps_position, Archive = boost::archive::text_oarchive]'
client.cpp:70: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:567: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
以下是我的系统上安装的Boost库:
boost-debuginfo-1.33.1-15.1.el5
boost-debuginfo-1.33.1-15.1.el5
boost-devel-1.33.1-15.1.el5
boost-1.33.1-15.1.el5
boost-1.33.1-15.1.el5
boost-doc-1.33.1-15.1.el5
boost-devel-1.33.1-15.1.el5
任何解决这些汇编错误的指针?
尝试声明
const gps_position obj(10, 20);
如下所示;
Boost版本1.33是疯狂的旧版本,我认为我们中的任何人都不会轻易复制。
相关文章:
- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- Ardunio UNO解决了多个重叠的定时器循环
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 两个文件使用彼此的功能-如何解决
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 在java中解决这段代码时面临循环中的问题
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 难以理解某些人解决IOI问题的源代码
- visual c++,如何获取解决方案目录中的代码
- 如何解决错误:SCIP C++中的 SCIP 阶段无效 <10>
- 节俭并发:未解决的外部问题
- IpOpt拒绝解决不受约束的问题
- 如何解决这个超硬恒星的创造问题
- 循环无限运行C++解决骑士之旅问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- 如何在 c++ 中使用 boost:serialization 时解决"sizeof"错误?