标签归档:std

C - longjump / setjump

众所周知,longjump + setjump是try-catch的鼻祖 setjump的作用 保存当前执行上下文到 std::jmp_buf 类型的变量。std::longjmp 函数稍后可用此变量恢复当前执行上下文。即在调用

阅读全文 →

C++ - 类型操作

forward std::forward 是一个函数模板,通常与右值引用(rvalue references)结合使用。它的主要作用是实现完美转发(perfect forwarding),确保在函数模板中能够保留传入参数的值类别(左值或右值)。这个特性在泛型编程和模板代码中非常重要,可以避免不必要的

阅读全文 →

C++ - 功能特性测试

标准中为 C++11 和之后引入的 C++ 语言和程序库的功能特性定义了一组预处理器宏。标准有意使之成为检测这些功能特性是否存在的一种简单且可移植的方式。 检查 __has_cpp_attribute( 属性记号 ) 检查你的编译器是否支持某些属性(某些特性/语法/宏)…… 可以在#if #elif

阅读全文 →

C++ - initializer_list意义、使用

统一初始化 C++11引入一个小概念:为了使 std::initializer_list 工作,引入了一个叫“统一初始化”,又名“大括号初始化 { }”。 #include <iostream> #include <vector> #include <array> int main() {

阅读全文 →