C/C++
文章平均质量分 92
imoisture
今天是对面的幻日
展开
-
C++线程对象std::thread之join和detach
C++11 之后有了标准的线程库:std::thread。Linux环境下,C++的库底层是对pthread的封装。一旦一个std::thread绑定了一个函数(如通过有参构造函数构造了一个std::thread对象),则此对象就会立刻开始执行传递进来的函数。原创 2023-07-23 17:34:31 · 1013 阅读 · 0 评论 -
C++ const 与 函数重载
大部分情况下,const修饰形参本身并不直接影响函数重载的判定,因为const修饰的是形参的 ,不影响参数类型; 但是,如果 const 修饰的是指针或者引用,那么如果是 底层const 会影响参数的类型,从而导致重载。简单区分一下 顶层const 和 底层const:顶层const:顶层 表示指针本身是个常量, 被修饰的变量本身无法改变;底层const:底层 表示指针所指的对象是一个常量。const 对普通函数的重载的影响值传递的形参,是否加const 不构成重载顶层const指针传递的形原创 2024-09-15 23:44:49 · 641 阅读 · 0 评论 -
C++ 引用折叠、万能引用与右值引用
如果一个函数模板形参的类型为T&&,并且T需要被推导得知,或者如果一个对象被声明为auto&&,这个形参或者对象就是一个通用引用。如果类型声明的形式不是标准的type&&,或者如果类型推导没有发生,那么type&&代表一个右值引用。通用引用,如果它被右值初始化,就会对应地成为右值引用;如果它被左值初始化,就会成为左值引用。原创 2024-09-18 17:25:39 · 1103 阅读 · 0 评论 -
C/C++ 宏定义、嵌套宏的展开、可变参数宏
只有覆盖宏定义的作用域是从定义处到文件结尾处(与之对比🆚,using、typedef 等的作用域,则与变量定义的作用域相同)对于带参数的宏定义,宏定义内容部分中出现的参数,其前后必须出现分隔符(字母、数字、下划线以外的符号,比如 空格、‘-’ ‘:’ 等) 才会被预处理当做参数,否则会被当做普通字符串原样保留。原创 2024-09-19 22:54:26 · 1341 阅读 · 0 评论 -
C++ 的值类别、auto与decltype
C++11开始引入了decltype关键字,和auto一样,它也是用于获取和推断对象和表达式类型的。它们两者在类型推断上,有什么不同呢?原创 2024-09-22 16:30:52 · 1091 阅读 · 0 评论