模板元编程

无名猿8 天前
c++·现代c++·模板元编程·语法基础
左值引用、右值引用与万能引用:引用折叠全解你大概见过 std::vector::push_back(T&&) 既能接左值又能接右值,也见过 std::forward 能把参数「原样」转发出去。它们背后是同一套机制:引用有三种(左值引用、右值引用、万能引用),而编译器用「引用折叠(reference collapsing)」把多层 &/&& 压成最终的一种。这篇把这套规则拆开,并用真跑的输出证明「具名右值引用其实是左值」这个反直觉结论。
saltymilk7 个月前
c++·模板元编程
使用 C++ 模拟 ShaderLanguage 的 swizzle经常编写着色器的同学应该对 swizzle(重排)语法非常熟悉,方便又灵活,可以说是用过一次便回味无穷。
点云SLAM8 个月前
c++·模板元编程·c++ 类型萃取·enable_if_t·is_same_v
C++std::enable_if_t 与 std::is_same_v使用常常和类型变换工具组合使用:表示“把 T 去掉引用与 cv 后是否为 std::vector”。下面给出多种工程中常见的使用方式,说明优劣与原因。
saltymilk1 年前
c++·模板元编程
C++ 模板参数推导问题小记(模板类的模板构造函数)本篇主要是为了记录在编写一个模板类的模板构造函数中遇到的初始化问题,以及针对这个问题展开的相关知识整理,文章就以引发这个问题的代码为标题了。
编码时空的诗意行者2 年前
开发语言·c++·模板元编程·类型检测
掌握现代C++的模板元编程类型检测技术最近写代码恰好用到了C++模板元编程的类型检测能力,以前对其原理有个大概的印象,但随着C++11/C++17等新特性的加入,很多做法和以前不同了,借此机会重新梳理一下这方面的知识点。
我是有底线的