GVKun编程网logo

将 Boost 序列化与 -Wall -Wextra 一起使用时的警告(boost序列化库)

20

本篇文章给大家谈谈将Boost序列化与-Wall-Wextra一起使用时的警告,以及boost序列化库的知识点,同时本文还将给你拓展Alibabafastjson序列化与反序列化、Bootstrap3

本篇文章给大家谈谈将 Boost 序列化与 -Wall -Wextra 一起使用时的警告,以及boost序列化库的知识点,同时本文还将给你拓展Alibaba fastjson 序列化与反序列化、Bootstrap 3.0不能与Apache 2.4一起使用吗?、bootstrap-可关闭的警告框、bootstrap4:pt-4 类不能与 col-12 类一起使用等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

将 Boost 序列化与 -Wall -Wextra 一起使用时的警告(boost序列化库)

将 Boost 序列化与 -Wall -Wextra 一起使用时的警告(boost序列化库)

如何解决将 Boost 序列化与 -Wall -Wextra 一起使用时的警告?

我正在尝试使用 Boost.serialize。它似乎工作正常,但是当我使用 -Wextra(版本 10.2.0)打开 -Wallg++ 警告时收到警告。

当我关闭警告时,它运行良好,并且编译良好。但是,我希望能够正确地摆脱它们。我已经尝试了几个小时,但找不到解决方案。我发现了一些类似警告的例子,但这些都是没有定义默认构造函数的情况。

我在下面创建了一个最小示例:

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>

struct minimal {
    minimal()=default;
    minimal(int in) 
        : x {in}
    {}  

    template <typename Archive>
        void serialize(Archive & ar,const unsigned vers){
            ar & x;
        }   

    int x;
};

int main()
{
    std::stringstream ss; 
    boost::archive::text_oarchive oa {ss};

    minimal M {10} ; 
    oa << M;  

    return 0;
}

我编译时的输出是

g++ -Wextra -Wall minimal.cc  -lboost_serialization 

minimal.cc: In instantiation of ''void minimal::serialize(Archive&,unsigned int) [with Archive = boost::archive::text_oarchive]'':
/usr/include/boost/serialization/access.hpp:116:20:   required from ''static void boost::serialization::access::serialize(Archive&,T&,unsigned int) [with Archive = boost::archive::text_oarchive; T = minimal]''
/usr/include/boost/serialization/serialization.hpp:59:22:   required from ''void boost::serialization::serialize(Archive&,unsigned int) [with Archive = boost::archive::text_oarchive; T = minimal]''
/usr/include/boost/serialization/serialization.hpp:109:14:   required from ''void boost::serialization::serialize_adl(Archive&,unsigned int) [with Archive = boost::archive::text_oarchive; T = minimal]''
/usr/include/boost/archive/detail/oserializer.hpp:153:40:   required from ''void boost::archive::detail::oserializer<Archive,T>::save_object_data(boost::archive::detail::basic_oarchive&,const void*) const [with Archive = boost::archive::text_oarchive; T = minimal]''
/usr/include/boost/archive/detail/oserializer.hpp:106:1:   [ skipping 2 instantiation contexts,use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/archive/detail/oserializer.hpp:315:22:   required from ''static void boost::archive::detail::save_non_pointer_type<Archive>::invoke(Archive&,const T&) [with T = minimal; Archive = boost::archive::text_oarchive]''
/usr/include/boost/archive/detail/oserializer.hpp:539:18:   required from ''void boost::archive::save(Archive&,T&) [with Archive = boost::archive::text_oarchive; T = const minimal]''
/usr/include/boost/archive/detail/common_oarchive.hpp:71:22:   required from ''void boost::archive::detail::common_oarchive<Archive>::save_override(T&) [with T = const minimal; Archive = boost::archive::text_oarchive]''
/usr/include/boost/archive/basic_text_oarchive.hpp:83:52:   required from ''void boost::archive::basic_text_oarchive<Archive>::save_override(T&) [with T = const minimal; Archive = boost::archive::text_oarchive]''
/usr/include/boost/archive/detail/interface_oarchive.hpp:70:36:   required from ''Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = minimal; Archive = boost::archive::text_oarchive]''
minimal.cc:24:11:   required from here
minimal.cc:11:46: warning: unused parameter ''vers'' [-Wunused-parameter]
   11 |  void serialize(Archive & ar,const unsigned vers){
      |                               ~~~~~~~~~~~~~~~^~~~
''''''

解决方法

修复很容易,只需删除未使用的参数的名称,或注释掉它的名称。

struct minimal {
    minimal()=default;
    minimal(int in) 
        : x {in}
    {}  

    template <typename Archive>
        void serialize(Archive & ar,unsigned /*vers*/){
            ar & x;
        }   

    int x;
};

在 C++17 中,您有 [[maybe_unused]] 属性说明符,例如:

struct minimal {
    minimal()=default;
    minimal(int in) 
        : x {in}
    {}  

    template <typename Archive>
        void serialize(Archive & ar,[[maybe_unused]] unsigned ver){
            ar & x;
        }   

    int x;
};

请参阅此问题以进一步阅读:

Unused parameter in c++11

Alibaba fastjson 序列化与反序列化

Alibaba fastjson 序列化与反序列化

fastjson在官网的定义号称最小最快 多态的json序列化工具。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。

JSON这个类是fastjson API的入口,主要的功能都通过这个类提供。下面是这个类的重要几个方法介绍:


序列化API

package com.alibaba.fastjson;

public abstract class JSON {
    // 将Java对象序列化为JSON字符串,支持各种各种Java基本类型和JavaBean
    public static String toJSONString(Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,返回JSON字符串的utf-8 bytes
    public static byte[] toJSONBytes(Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,写入到Writer中
    public static void writeJSONString(Writer writer,Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,按UTF-8编码写入到OutputStream中
    public static final int writeJSONString(OutputStream os,// 
                                            Object object,// 
                                            SerializerFeature... features);
}



JSON字符串反序列化API


package com.alibaba.fastjson;


public abstract class JSON {
    // 将JSON字符串反序列化为JavaBean
    public static <T> T parSEObject(String jsonStr,Class<T> clazz,Feature... features);


    // 将JSON字符串反序列化为JavaBean
    public static <T> T parSEObject(byte[] jsonBytes,// UTF-8格式的JSON字符串
                                    Class<T> clazz,Feature... features);


    // 将JSON字符串反序列化为泛型类型的JavaBean
    public static <T> T parSEObject(String text,TypeReference<T> type,Feature... features);


    // 将JSON字符串反序列为JSONObject
    public static JSONObject parSEObject(String text);
}



Demo


parse Tree

import com.alibaba.fastjson.*;

JSONObject jsonObj = JSON.parSEObject(jsonStr);


parse POJO


import com.alibaba.fastjson.JSON;


Model model = JSON.parSEObject(jsonStr,Model.class);




parse POJO Generic


import com.alibaba.fastjson.JSON;


Type type = new TypeReference<List<Model>>() {}.getType(); 
List<Model> list = JSON.parSEObject(jsonStr,type);




convert POJO to json string

import com.alibaba.fastjson.JSON;


Model model = ...; 
String jsonStr = JSON.toJSONString(model);




convert POJO to json bytes


import com.alibaba.fastjson.JSON;


Model model = ...; 
byte[] jsonBytes = JSON.toJSONBytes(model);




write POJO as json string to OutputStream


import com.alibaba.fastjson.JSON;


Model model = ...; 
OutputStream os;
JSON.writeJSONString(os,model);




write POJO as json string to Writer


import com.alibaba.fastjson.JSON;


Model model = ...; 
Writer writer = ...;
JSON.writeJSONString(writer,model);


总结:


更多关于fastjson的知识可以去w3c去了解:https://www.w3cschool.cn/fastjson/

Bootstrap 3.0不能与Apache 2.4一起使用吗?

Bootstrap 3.0不能与Apache 2.4一起使用吗?

我刚刚安装了Apache 2.4附带的Centos 7.0.我的引导程序应用程序无法正确呈现.具体而言,引导程序组件无法正确呈现.例如,在class = btn-primary的按钮上,颜色为蓝色,文本为白色,使用Apache 2.4将文本渲染为黑色.还有很多其他问题.

我的问题是有其他人有这个问题吗?是否有解决方法,例如html标签的向后兼容性标志?我用谷歌搜索,找不到任何其他参考.

感谢您分享您可能拥有的任何调查结果.

解决方法

我们遇到了同样的问题.我们花了5-6小时来调试.它是/etc/httpd/conf.d/目录中welcome.conf中的别名映射bootstrap.css
Alias /.noindex.html /usr/share/httpd/noindex/index.html
Alias /css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
Alias /css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png

只需删除/注释掉所有/ css /行或禁用welcome.conf.我不知道这是否只附带CentOS或httpd包.这是一个愚蠢的事情.

同样的事情也发生在/ error / alias上.

bootstrap-可关闭的警告框

bootstrap-可关闭的警告框

总结

以上是小编为你收集整理的bootstrap-可关闭的警告框全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

bootstrap4:pt-4 类不能与 col-12 类一起使用

bootstrap4:pt-4 类不能与 col-12 类一起使用

如何解决bootstrap4:pt-4 类不能与 col-12 类一起使用?

我正在努力

<body>
<div>
     Some text here
</div>
</body>

但我没有看到添加任何填充

我必须使用样式来添加填充,即

<div>
     Some text here
</div>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于将 Boost 序列化与 -Wall -Wextra 一起使用时的警告boost序列化库的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Alibaba fastjson 序列化与反序列化、Bootstrap 3.0不能与Apache 2.4一起使用吗?、bootstrap-可关闭的警告框、bootstrap4:pt-4 类不能与 col-12 类一起使用的相关信息,请在本站寻找。

本文标签: