C - longjump / setjump
众所周知,longjump + setjump是try-catch的鼻祖 setjump的作用 保存当前执行上下文到 std::jmp_buf 类型的变量。std::longjmp 函数稍后可用此变量恢复当前执行上下文。即在调用
C++ - exit / quick_exit / _Exit 的区别
从C++ 11开始就有了两种exit函数,这两个的区别将在这里做一次记录。 std::exit 该函数在头文件 <cstdlib> 钟定义
C++和Java的差异
多态差异 先说结论,C++的多态因为虚函数的缘故,他的表现和Java的略与不同,虚函数。当C++程序员进行Java开发的时候如若不能立即切换,可能会因为他们所谓的反直觉导致代码编写出现差异 源代码 C++ Code #include <iostream>
class Father {
public
C++ - 类型操作
forward std::forward 是一个函数模板,通常与右值引用(rvalue references)结合使用。它的主要作用是实现完美转发(perfect forwarding),确保在函数模板中能够保留传入参数的值类别(左值或右值)。这个特性在泛型编程和模板代码中非常重要,可以避免不必要的
C++ - 功能特性测试
标准中为 C++11 和之后引入的 C++ 语言和程序库的功能特性定义了一组预处理器宏。标准有意使之成为检测这些功能特性是否存在的一种简单且可移植的方式。 检查 __has_cpp_attribute( 属性记号 ) 检查你的编译器是否支持某些属性(某些特性/语法/宏)…… 可以在#if #elif
C - calloc的意义?
C里面有malloc和calloc,通常情况下大部分人使用的都是malloc,这两个的作用几乎就是等价的,但是为什么会有calloc这个东西呢? 其实这里面有几个要点: 错误与欺骗 auto m = malloc(INT_MAX * INT_MAX); 上面这个代码显而易见会报错提示说溢出了,而下面
C++ - initializer_list意义、使用
统一初始化 C++11引入一个小概念:为了使 std::initializer_list 工作,引入了一个叫“统一初始化”,又名“大括号初始化 { }”。 #include <iostream>
#include <vector>
#include <array>
int main() {