Я использую библиотеку boost::serialization. При компиляции я получаю много длинных предупреждений, которые, кажется, связаны с тем, что не используется file_version в функции сериализации. (компилятор: г++)
Есть ли умный способ явно отключить эти предупреждения для этих функций, так как мне нравятся предупреждения о неиспользуемых переменных в целом, которые помогают избежать глупых ошибок.
пример кода (очень не самостоятельный, но должен быть достаточным, чтобы подчеркнуть):
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;
}
по праву вызывает еще одно предупреждение.
// boost bug - can't handle non copy constructability
– это не ошибка повышения, см. ссылку (также забавно объявление 2) - person sehe   schedule 21.03.2018layers_
(inb4hash_map
). Обратите внимание, что с циклом он будет работать только в том случае, еслиlayers_
является контейнером фиксированного размера. - person sehe   schedule 21.03.2018#include <boost/serialization/vector.hpp>
). Журнал изменений не указывает на изменения с 1.58.0. Я предполагаю, что у вас действительно были проблемы с этим, просто знайте, что текущий код недействителен, если вектор не имеет фиксированного размера. - person sehe   schedule 21.03.2018