<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ISmileLi的博客]]></title><description><![CDATA[爱人生，爱微笑，一个爱分享的程序猿！]]></description><link>https://blog.youkuaiyun.com/toby54king</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; toby54king]]></copyright><item><title><![CDATA[C++无名命名空间中定义的函数不使用造成“-Wunused-function”警告问题]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/128943897</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/128943897</guid><author>toby54king</author><pubDate>Wed, 08 Feb 2023 21:37:09 +0800</pubDate><description><![CDATA[C++ 语言就是博大精深，各种语法问题，都值得深入探究一下，很多时候你觉得会用了、感觉明白了，真到使用的时候又会出现一些疑惑，这篇文章就来探究一下，C++中无名命名空间使用问题，问题的探究，是从下文章节一中的警告开始的。环境是在ubuntu16下使用vscode配置cmake命令编译调试的。]]></description><category></category></item><item><title><![CDATA[xml文件中CDATA字段的写入-tinyxml2]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/128941261</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/128941261</guid><author>toby54king</author><pubDate>Wed, 08 Feb 2023 18:52:18 +0800</pubDate><description><![CDATA[tinyxml2写入CDATA字段问题]]></description><category></category></item><item><title><![CDATA[【译】protobuf语法指南]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/118274875</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/118274875</guid><author>toby54king</author><pubDate>Sun, 27 Jun 2021 16:05:27 +0800</pubDate><description><![CDATA[protobuf语法指南一、写在前面二、protobuf指南 (proto3)1、定义消息类型-Defining A Message Type2、标量值类型-Scalar Value Types3、默认值-Default Values4、枚举-Enumerations5、使用其他消息类型-Using Other Message Types6、嵌套类型-Nested Types7、更新消息类型-Using Other Message Types8、未知字段-Unknown Fields9、任何-Any10、一]]></description><category></category></item><item><title><![CDATA[protobuf出现“ParseFromIstream return false”问题]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/118274847</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/118274847</guid><author>toby54king</author><pubDate>Sun, 27 Jun 2021 15:19:51 +0800</pubDate><description><![CDATA[自己使用C++序例化好的数据，解析的时候一直出现“ParseFromIstream return false”问题，关键是有的文件可以解析成功，有的不可以解析成功。
查找了半天的时间发现是：序列化的过程中有一些字段类型赋值错误导致，我犯的错误把int类型赋值给bool类型，导致查找问题根源都定位的不对。
在使用protobuf过程中，无故出现解析相关问题，建议从两个方面入手：
第一：看看是不是把不可以兼容的类型赋值给了另外的类型，例如把int直接赋值给bool类型。
第二：看看自己定义的结构体变量是否给了初]]></description><category></category></item><item><title><![CDATA[spatialite编译使用]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/118114041</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/118114041</guid><author>toby54king</author><pubDate>Tue, 22 Jun 2021 19:29:38 +0800</pubDate><description><![CDATA[spatialite编译使用零、前言一、安装依赖库二、编译spatialite库三、spatialite库使用
零、前言
sqlite本身不支持空间索引，只支持数据存储，spatialite库是对sqlite的扩展，可以对sqlite中存储的坐标进行读写操作，本文就是结合自己的使用过程总结而成，希望能够对你有所帮助。
一、安装依赖库
我这里的编译环境是ubuntu18.04下面的在线编译，spatialite所有的依赖库都是采用在线的方式进行安装，spatialite的依赖库包括：sqlite3、proj、]]></description><category></category></item><item><title><![CDATA[osgeo和pyproj：经纬度坐标和高斯坐标互相转换]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/117599464</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/117599464</guid><author>toby54king</author><pubDate>Sat, 05 Jun 2021 17:17:08 +0800</pubDate><description><![CDATA[一、前言
搞地图和自动驾驶的都知道，坐标转换是非常频繁的事情，有时候需要在各种坐标之间来回的转换，最近使用python代码处理地图数据，在使用osgeo库中的gdal时，发现了gdal v2和V3的一些不同之处，研究了一下，这里分享出来。
二、问题描述
经纬度转高斯的过程中，发现3.0一直出现的转换结果是’inf’，经过查看官方github上的issue，才知道，gdal V3.0以后，转换需要设置转换策略，具体看后面代码中的说明，现象截图如下：

三、解决后封装的代码
下面代码使用osgeo库和pypro]]></description><category></category></item><item><title><![CDATA[C++版NumPy-Eigen库快速入门]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/111412160</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/111412160</guid><author>toby54king</author><pubDate>Sat, 19 Dec 2020 23:29:32 +0800</pubDate><description><![CDATA[Eigen库的使用零、前言一、Eigen矩阵类1、矩阵类模板参数2、向量3、特值动态4、矩阵和向量的初始化5、矩阵和向量的存取6、逗号初始化7、调整大小二、矩阵和向量算法1、加减2、标量乘法和除法3、转置、共轭和伴随4、矩阵矩阵和矩阵向量乘法5、点积和叉积6、基本算术归约运算7、操作的有效性三、数组类和按系数运算1、数组类2、访问数组内的值3、加减4、数组乘法5、其他系数运算6、在数组和矩阵表达式之间转换四、块操作1、使用块操作2、列和行3、与角相关的操作4、向量的块运算五、Eigen高级初始化1、逗号初始]]></description><category></category></item><item><title><![CDATA[ubuntu下安装三维渲染引擎OSG详解]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/109568111</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/109568111</guid><author>toby54king</author><pubDate>Mon, 09 Nov 2020 01:19:36 +0800</pubDate><description><![CDATA[零、前言
OpenSceneGraph是一个开源的、跨平台的三维引擎，被广泛的应用在可视化仿真、游戏、虚拟现实、三维重建等领域，采用标准C++和OpenGL编写而成，能够更加快速、便捷地创建高性能、跨平台的交互式图形程序，在OpenGL上的面向对象的框架，把开发者从实现和优化底层图形的调用中解脱出来，它为图形应用程序的快速开发提供很多附加的实用工具。
一、下载OSG库并解压
1、OSG下载
进入官网可以看到网页上有个Downloads,下拉框中的图示中的三个红框依次是：OSG版本、依赖库、使用数据，这三个是]]></description><category></category></item><item><title><![CDATA[导航电子地图数据存储标准NDS中文版和英文版]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/109407571</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/109407571</guid><author>toby54king</author><pubDate>Sat, 31 Oct 2020 20:40:28 +0800</pubDate><description><![CDATA[导航电子地图数据存储标准NDS中文版和英文版一、NDS说明二、整理过程三、吐槽优快云四、下载地址
一、NDS说明
导航电子地图数据存储标准NDS在高精度地图领域有着广泛的使用，NDS（NavigationData Standard），它是一种基于嵌入式数据库（sqlite）的导航电子地图数据存储标准。在地图、无人驾驶、导航等领域都有它的身影，也是每一个搞这些领域人员绕不开的知识。
二、整理过程
然而这块知识的中文版信息并不多，即便是在互联网发达的今天，小编花费了一天的时间搜索相关知识也没能搜到多少有用的信]]></description><category></category></item><item><title><![CDATA[OpenDrive数据格式中文版]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/109264394</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/109264394</guid><author>toby54king</author><pubDate>Sat, 24 Oct 2020 20:18:41 +0800</pubDate><description><![CDATA[OpenDrive数据格式中文版
搞地图和自动驾驶等相关领域的都会用都OpenDrive格式的数据，包括百度的apollo自动驾驶平台使用的也是OpenDrive数据格式。OpenDrive官网提供了有关OpenDrive数据格式的详细说明，可惜是全英文的，对我这种英文不太好的人来说，看着就有点费劲了，就借助工具翻译整理了一份中文版的数据格式说明。在这里分享出来，希望也能帮到遇到这种困境的小伙伴。
限于篇幅太长，贴在博客中不方便，这里提供一个pdf版本的下载地址和官方原文链接，如有需要请自行下载。
官网数据]]></description><category></category></item><item><title><![CDATA[C++ 自动推导类型auto用起来真是爽歪歪啊]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/108683774</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/108683774</guid><author>toby54king</author><pubDate>Sat, 19 Sep 2020 17:33:57 +0800</pubDate><description><![CDATA[C++ 自动推导类型auto零、写在前面一、auto类型的推导语法二、auto操作容器三、auto的使用限制
零、写在前面
C++的auto在C++98和C++03的时候已经存在，它被用来自动存储变量，直到C++11它才被赋予新的含义，可以自动推导各种类型了，从而大大地提高了C++程序的书写效率，也使C++具备了python、java等语言让编译自动去推导类型的能力，而不用刻意的去定义一个变量的类型。
一、auto类型的推导语法
C++11赋予auto的新含义，让它具备了自动推导类型的功能，这样就不需要我们]]></description><category></category></item><item><title><![CDATA[C++已经有了const，为什么还要增加一个新关键字constexpr？]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/108682187</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/108682187</guid><author>toby54king</author><pubDate>Sat, 19 Sep 2020 16:04:17 +0800</pubDate><description><![CDATA[const和constexpr一、可执行程序的出生过程一、const和constexpr二、必须使用constexpr的场景三、const和constexpr区别与联系
一、可执行程序的出生过程
一个源程序到一个可执行程序的过程必须经过预编译、编译、汇编、链接，最后打包成可执行的程序。
预编译会处理各种条件编译指令，如#if、#endif等，对#define等进行宏展开，保留一些必要编译指令如#pragma，删除一些不必要的注释等等，预编译是为了后面的编译做准备。
编译会把预编译生成的.i/.ii文件进行语]]></description><category></category></item><item><title><![CDATA[C++新特性元组-tuple]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/106774350</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/106774350</guid><author>toby54king</author><pubDate>Tue, 16 Jun 2020 00:16:24 +0800</pubDate><description><![CDATA[C++中的元组-tuple一、小序二、tuple简介三、tuple的使用示例
一、小序
python程序员一定对元组这个词非常熟悉，python中的元组很强大，刚接触python时我一直认为python中的元组是对C++数组的封装，吸收了C++的数组的精华并进行了扩展。C++11以后直接增加了元组这个数据结构，或许是C++标准制定者看到了python中元组的方便，索性也直接吸收了吧。自从C++中增加了元组之后，每当一个函数需要返回多个值时，我就会想到使用元组-tuple。
二、tuple简介
tuple是一]]></description><category></category></item><item><title><![CDATA[冒泡排序、选择排序、插入排序、快速排序-Go语言版]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/106439195</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/106439195</guid><author>toby54king</author><pubDate>Sat, 30 May 2020 11:51:40 +0800</pubDate><description><![CDATA[排序算法一、小序二、冒泡排序三、选择排序四、插入排序五、快速排序
一、小序
自己够强才是王道！最近写的技术博客少了，一是工作比较忙，二是一直在忙着给自己充电。在忙着提高自己的技术，这段时间又重启了Go语言的学习计划，之前了解过Go语言，也学习过一段时间，时间久了忘得也差不多了，最近在慢慢捡起来，慢慢在进阶学习。这几种算法就是在学习Go语言的过程中用来练手的，顺便分享一下。这几种算法的原理不再说明了，之前也写过C++版的，原理都在这里，感兴趣C++版的可以移步看一下：https://blog.youkuaiyun.com]]></description><category></category></item><item><title><![CDATA[不一样的母爱]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/106032330</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/106032330</guid><author>toby54king</author><pubDate>Sun, 10 May 2020 10:25:50 +0800</pubDate><description><![CDATA[文/爱笑的王阿哥(ISmileLi)

每个人都有自己的母亲
每位母亲都爱自己的孩子
我们也爱自己的母亲
但却和母亲爱我们不一样
我们对母亲的爱
像小桥流水
母亲对我们的爱
像江河湖海
每位母亲不同
表达爱的方式也不同
她们的爱
或平静
或深沉
或直白
每位母亲不同
表达爱的思想却相同
她们的爱
或伟大
或善良
或自私
如果问世界上最伟大的爱是什么？
那一定是母爱！
如果问世界上最自私的爱是什么？
那也一定是母爱！
母爱是世界上伟大而自私的爱
每一位母亲都可以为了孩子付出一切
母爱是伟大的
每一位母亲都可以]]></description><category></category></item><item><title><![CDATA[C++14新特性：deprecated的含义与使用？]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/105744658</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/105744658</guid><author>toby54king</author><pubDate>Sat, 25 Apr 2020 09:18:58 +0800</pubDate><description><![CDATA[一、小序
学习java或者python的同学可能都知道deprecated这个词，搞C++的同学可能对这个词还比较陌生，毕竟这个词直到C++14才出现，并且使用的频率可能也不是很高。下面一块来看一下deprecated这个词的神秘面纱。
二、含义
直译这个词的意思是“不赞成、不建议、强烈反对”，在java或者python中可以在这个词前面加上@即@deprecated表示注解，C++中的功能也类似...]]></description><category></category></item><item><title><![CDATA[VScode安装、配置和使用]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/105453603</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/105453603</guid><author>toby54king</author><pubDate>Sat, 11 Apr 2020 15:55:15 +0800</pubDate><description><![CDATA[VScode安装、配置和使用零、前言一、下载1、下载地址2、版本二、安装1、脑残安装2、界面介绍三、扩展插件1、扩展介绍2、安装插件3、已经安装的插件四、VSCode使用1、添加工作空间2、创建工程3、配置工程1)c_cpp_properties.json2）launch.json3）tasks.json4）运行工程4、其他配置方法
零、前言
VSCode全称是Visual Studio Code...]]></description><category></category></item><item><title><![CDATA[虚拟机里Ubuntu开启快照、删除快照和扩容磁盘空间]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/105375527</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/105375527</guid><author>toby54king</author><pubDate>Tue, 07 Apr 2020 22:29:34 +0800</pubDate><description><![CDATA[虚拟机下Ubuntu开启快照、删除快照和扩容磁盘空间零、小序一、虚拟机开启快照1、开启快照2、开启快照步骤二、虚拟机删除快照1、删除快照2、删除快照步骤三、虚拟机扩容1、扩容前准备2、扩容步骤4、对磁盘重新分区
零、小序
很多时候工作既需要在windows下工作又需要在linux下工作，于是虚拟机成为了必不可少的选择。通常虚拟机的空间都不会分配过大，一般分配30G或者50G左右，但是随着时间的推移...]]></description><category></category></item><item><title><![CDATA[boost库中的字符串算法查找、切割、替换、删除、合并、大小写转换等等详解]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/105347367</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/105347367</guid><author>toby54king</author><pubDate>Mon, 06 Apr 2020 17:36:09 +0800</pubDate><description><![CDATA[boost库中的字符串算法查找、切割、替换、删除、合并等等详解零、小序一、大小写转换1、大小写转换函数2、大小写代码示例二、删除1、删除函数2、删除代码示例三、替换1、替换函数2、替换代码示例四、查找1、查找函数2、查找代码示例五、判别式和分类1、判别式和分类函数2、判别式和分类代码示例六、修剪1、修剪函数2、修剪代码示例七、分割1、分割函数2、分割代码示例八、合并1、合并函数2、合并代码示例九、...]]></description><category></category></item><item><title><![CDATA[C++11新特性：using和namespace的特殊用处]]></title><link>https://blog.youkuaiyun.com/toby54king/article/details/105330715</link><guid>https://blog.youkuaiyun.com/toby54king/article/details/105330715</guid><author>toby54king</author><pubDate>Sun, 05 Apr 2020 18:12:36 +0800</pubDate><description><![CDATA[using和namespace的特殊用处零、前言一、using1、类型别名2、别名模板3、代码示例二、namespace1、命名空间2、命名别名3、使用示例
零、前言
C++11以后增加了许多新的特性，这些新的特性越来越方便C++程序员的编码，也再次赋予了C++新的活力与朝气！截止到目前C++20的标准已经出来了，C++这位“老先生”正在紧跟时代的步伐！作为Cpper也应该紧跟这位“老先生”脚步。...]]></description><category></category></item></channel></rss>