
C++
AlbertTao23
这个作者很懒,什么都没留下…
展开
-
GitHub C 和 C++ 开源库的清单(含示例代码)
GitHub C 和 C++ 开源库的清单(含示例代码)内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library:标准模板库 C POSIX library: POSIX系统的C标准库规范 ISO C++ Standards ..转载 2020-12-18 10:39:11 · 1601 阅读 · 1 评论 -
string_view
什么是string_viewstd::string_view是C++ 17标准中新加入的类,正如其名,它提供一个字符串的视图,即可以通过这个类以各种方法“观测”字符串,但不允许修改字符串。由于它只读的特性,它并不真正持有这个字符串的拷贝,而是与相对应的字符串共享这一空间。即——构造时不发生字符串的复制。同时,你也可以自由的移动这个视图,移动视图并不会移动原定的字符串。正因这些特性,当你不需要改变字符串时,应当抛弃原来使用的const string而采用新的string_view,这样可以避免多余的字转载 2020-12-04 10:22:31 · 4490 阅读 · 0 评论 -
std::optional
在编程中,我们经常遇到这样的情况:我们可能返回/传递/使用某种类型的对象。也就是说,我们可以有某个类型的值,也可以没有任何值。因此,我们需要一种方法来模拟类似指针的语义,在指针中,我们可以使用nullptr来表示没有值。处理这个问题的方法是定义一个特定类型的对象,并用一个额外的布尔成员/标志来表示值是否存在。std::optional<>以一种类型安全的方式提供了这样的对象。 std::optional对象只是包含对象的内部内存加上一个布尔标志。因此,大小通常比包含的对象大一个字节。...转载 2020-12-04 10:03:45 · 533 阅读 · 0 评论 -
Glog使用文档
来自Google的Glog是一个应用程序的日志库。它提供基于C++风格的流的日志API,以及各种辅助的宏。打印日志只需以流的形式传给LOG(level),例如:#include <glog/logging.h>int main(int argc, char* argv[]) { // Initialize Google's logging library. google::InitGoogleLogging(argv[0]); // ... LOG(INFO) &..转载 2020-11-17 20:02:55 · 1394 阅读 · 0 评论 -
关于std::bind绑定成员函数与虚函数的方法
关于std::bind绑定成员函数与虚函数的方法。 #include <iostream> #include <functional> using namespace std; class A { public: A() :m_a(0){} ~A(){} virtual void SetA(const int& a){ cout << "A:"...转载 2020-11-16 17:58:13 · 5113 阅读 · 1 评论 -
使用vs2019进行Linux远程开发
通常,当我们开发Linux程序时有两种方案:在Linux上直接编写程序并进行运行测试和调试 在Windows或Mac OS X上借助工具进行远程开发虽然我自己是在Linux环境上直接进行开发的,但也有许多的人是在Windows环境上从事开发工作的,如果离开自己熟悉的系统到陌生的环境上也许会影响到工作效率。因此今天我们就来看下如何在Windows上使用Visual Studio 2019进行Linux远程开发以及如何避免常见的陷阱。本文索引Visual Studio的跨平台开发功能简介转载 2020-11-14 14:10:44 · 395 阅读 · 0 评论 -
boost log编译失败
boost 日志示例中有一个错误:下面这个文件:http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_fmt_stream.cpp应该在开头加一行:#include <boost/log/support/date_time.hpp>否则会出下列错错误:error C2027: 使用了未定义类型“boost::log::v2s_mt_nt5::expressions::a...转载 2020-11-13 12:59:49 · 1196 阅读 · 1 评论 -
libreadline6-dev
ubuntu 下叫readline-dev 细分又分为libreadline5-dev 和 libreadline6-dev原创 2020-11-05 15:25:31 · 1702 阅读 · 0 评论 -
curses库安装
curses库是可以在linux终端中写出字符用户界面的一个库,现在较新的版本应该是ncurses库,现在已经很少有人再去使用他了,所以想拥有这个库并且在linux下写出自己用户界面的可以参考一下本博客,在网上搜了一下,所有的都是基于Ubuntu的安装方法,都是在联网方式下输入一句shell命令,但是我们如果装的是虚拟机不能联网怎么办,我现在提供给大家一个下载地址,你只用下载一个压缩包,安装即可。 下载地址:http://ftp.gnu.org/pub/gnu/ncurses/下载ncur...原创 2020-11-05 15:24:01 · 1004 阅读 · 0 评论 -
CMAKE_EXE_LINKER_FLAGS 添加link libraries
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/opt/boost/lib -lboost_system -lboost_program_options")原创 2020-11-05 15:20:16 · 4285 阅读 · 0 评论 -
gperftools的安装与使用
yum install gperftools yum install gperftools-develhttps://github.com/gperftools/gperftools.git原创 2020-11-05 15:08:33 · 448 阅读 · 0 评论 -
gcc fpic
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。gcc -shared -fPIC -o 1.so 1.c1这里有一个-fPIC参数PIC就是position independent codePIC使.so文件的代码段变为真正意义上的共享如果不加-fPIC,则加转载 2020-11-02 10:48:27 · 262 阅读 · 0 评论 -
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2使用VS2013版本引用外部的lib进行编译时候提示:错误25error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(jrtplibSend.obj 中)F:\jrtplibProjects\jrtplibSend\jrtplibSend\jrtplib.lib(rtpudpv6transmitter.obj)j...转载 2020-10-30 10:28:16 · 319 阅读 · 0 评论