Expression TemplatesApril 6, 20224 分钟阅读 Liu Bang ProgrammingC++Template什么是 Expression TemplatesExpression Templates 是一种 C++ 模板元编程技术,它通过在编译时构建按需执行的计算表达式,从而生成高效的代码。简单来说,通过 Expression Templates,我们可以实现惰性求值和消除因为中间结果而创建的临时变量。一个常规示例我们构造了一个MyVector类,并且重载了MyVector的+和*操作符,实现两个MyVector中相同下标元素的+和*操作。 对于这样的需求我们很容易写出形如下面代码的一个简单的实现: 1#include <cassert> 2#include <iostream> 3#include...阅读更多
c++元编程之遍历tupleFebruary 22, 20223 分钟阅读 Liu Bang ProgrammingC++Template对于一个标准的 c++容器来说,我们可以很容易在运行时使用迭代器和 range-based for loop 来遍历其中的每一个元素。但是对于std::tuple,却不能像普通的容器那样去遍历它。std::tuple 简介std::tuple是一个具有固定大小,包含不同类型值的集和。与之相似的是std::pair,只不过std::pair只能容纳两个元素, 而std::tuple可以容纳许多元素:1std::tuple<int, double, const char*> tup {42, 10.5, "hello"}; 2 3// or with CTAD(class template...阅读更多