【发布时间】:2018-08-30 17:04:31
【问题描述】:
我使用 boost::serialization 库。编译时,我收到很多冗长的警告,这些警告似乎与未在序列化函数中使用 file_version 有关。 (编译器:g++)
有没有一种聪明的方法可以明确禁用这些函数的警告,因为我一般喜欢未使用的变量警告,这有助于避免愚蠢的错误。
代码示例(非常不独立,但足以说明一点):
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.
}
我只是写作的想法
template<class Archive>
void serialize(Archive &ar, const unsigned int file_version)
{
file_version;
ar & this->bias_;
for(auto& layer : this->layers_)
ar & layer;
}
正确地提出另一个警告。
【问题讨论】:
-
w.r.t.有趣的 cmets boost.org/doc/libs/1_66_0/libs/serialization/doc/…
-
@sehe 我看不到有趣的 cmets。你能解释一下这个笑话吗?你链接错误的部分吗?我不明白你在说什么。
-
"
// boost bug - can't handle non copy constructability" - 这不是 boost 错误,请参阅链接(另外,funny ad.2) -
@sehe 有评论,因为 boost 不允许我写 ar & this->layers_(如果我在 1.6.1 中正确地用谷歌搜索)
-
1.6.1?那不是我记得看过的版本。它可能只包含某个标题,尽管我当然不知道
layers_的类型是什么(inb4hash_map)。但请注意,只有在layers_是固定大小的容器时,循环才会起作用。
标签: c++ boost boost-serialization