C++ boost::序列化警告未使用变量文件\u版本

C++ boost::序列化警告未使用变量文件\u版本,c++,boost,boost-serialization,C++,Boost,Boost Serialization,我使用boost::serialization库。在编译时,我收到了很多冗长的警告,这些警告似乎与在serialize函数中不使用file_version有关。(编译器:g++) 有没有一种聪明的方法可以显式地禁用这些函数的警告,因为我通常喜欢未使用的变量警告,这有助于避免愚蠢的错误 代码示例(非常不独立,但足以说明问题): 模板 无效序列化(存档&ar,常量未签名整数文件\u版本) { ar&this->bias; 用于(自动图层:此->图层) ar&layer;//旧的boost版本不适用于

我使用boost::serialization库。在编译时,我收到了很多冗长的警告,这些警告似乎与在serialize函数中不使用file_version有关。(编译器:g++)

有没有一种聪明的方法可以显式地禁用这些函数的警告,因为我通常喜欢未使用的变量警告,这有助于避免愚蠢的错误

代码示例(非常不独立,但足以说明问题):

模板
无效序列化(存档&ar,常量未签名整数文件\u版本)
{
ar&this->bias;
用于(自动图层:此->图层)
ar&layer;//旧的boost版本不适用于容器。
}
我对写作的想法

template<class Archive>
void serialize(Archive &ar, const unsigned int file_version)
{
    file_version;
    ar & this->bias_;
    for(auto& layer : this->layers_)
        ar & layer;
}
模板
无效序列化(存档&ar,常量未签名整数文件\u版本)
{
文件版本;
ar&this->bias;
用于(自动图层:此->图层)
ar&layer;
}

有理由提出另一个警告

您可以匿名声明参数:

template<class Archive>
void serialize(Archive &ar, const unsigned int /*file_version*/)
{
    ar & this->bias_;
    for(auto& layer : this->layers_)
        ar & layer; // old boost version doesn't do this for containers.
}
模板
无效序列化(存档&ar,常量unsigned int/*文件\u version*/)
{
ar&this->bias;
用于(自动图层:此->图层)
ar&layer;//旧的boost版本不适用于容器。
}

w.r.t.有趣的评论@sehe我在那里看不到有趣的评论。你能解释一下这个笑话吗?你链接错部分了吗?我不明白你在说什么。“
//boost bug-无法处理非复制的可构造性”
“-这不是boost bug,请参见链接(还有,广告2)@sehe注释就在那里,因为boost不允许我编写ar&this->layers\ux(如果我在1.6.1中正确搜索修复)1.6.1?那不是我记得见过的版本。它可能只是包含一个特定的标题,当然我不知道
层的类型是什么(inb4)。不过请注意,对于循环,只有当
layers\uu
是一个固定大小的容器时,它才会工作。
template<class Archive>
void serialize(Archive &ar, const unsigned int /*file_version*/)
{
    ar & this->bias_;
    for(auto& layer : this->layers_)
        ar & layer; // old boost version doesn't do this for containers.
}