std::string_view只有在以pass by value当作形参并且以C风格字符串传参时才有效。- perror感觉是包装了strerror。
- gcc是默认的c编译器,不会链接c++标准库,所以编译.cpp文件会遇到链接错误;g++专门处理c++的编译和链接;如果需要在c语言中调用c++代码,需要用extern “C”{}包裹。
- read系统调用从终端读取时遇到
\n返回,并且\n已被读入。 [[deprecated]]属性要在头文件和源文件的函数前都添加。git cliff自动生成changelog的工具。- 成员变量是
std::unique_ptr的时候把析构函数定义在源文件。如果放在头文件中,析构函数会调用std::unique_ptr类型的析构函数,但是在函数中看不到指向类型的完整类型,所以报错。 - 如果类中定义了移动构造或移动赋值,或者成员变量不支持拷贝操作,编译器不会自动为其生成拷贝构造或拷贝赋值函数;当类中没有定义任何拷贝操作时,且所有成员都支持移动操作时,编译器才会为其生成移动构造和移动赋值函数。
- 如果不涉及动态内存分配或文件句柄管理,则5个都不写;要不就显式定义5个函数,或者用default和delete明确其行为。
- 初始化列表不能初始化父类的成员变量。
-fno-plt选项可以绕过PLT中间层,直接跳转到GOT表的符号地址,提高性能,但也会增加符号解析的复杂性。- gcc c ompiler options
- -g:无优化,生成调试信息
- -Og:启用一些优化,但不影响生成调试信息
- -O0:不进行优化(默认)
- -O1(或-O):基本优化
- -O2:up!
- -O3:up!up!
- 代码中不对调用函数进行声明的时候编译器会进行隐式声明,会报[-Wimplicit-function-declaration]警告
- -rdynamic选项开启后backtrace_symbols才能返回具体函数名
C++杂项
于 2024-09-11 19:15:24 首次发布
519

被折叠的 条评论
为什么被折叠?



