c++ 模板元编程

听说模板元编程能在编译时计算出常量,简单测试下看看:

cpp 复制代码
template<int N>
struct Summation {
	static constexpr int value = N + Summation<N - 1>::value; // 计算 1 + 2 + ... + N 的值
};

template<>
struct Summation<1> {  // 递归终止条件
	static constexpr int value = 1;
};

constexpr int result = Summation<5>::value; // 即 5 + 4 + 3 + 2 + 1 = 15;

int main()
{
    cout << "1 + 2 + ... + 5 = " << Summation<5>::value << endl;
    return 0;
}

打印:

ok.

相关推荐
宣宣猪的小花园.2 分钟前
【机器学习】损失函数与梯度下降:机器如何通过“犯错”不断变好
人工智能·算法·机器学习
雪落漂泊18 分钟前
C++11(上)
开发语言·c++
青山木33 分钟前
Hot 100 --- 最长递增子序列
java·数据结构·算法·leetcode·动态规划
春涧草茶41 分钟前
慢就是快12-2三种访问权限|getter与setter|魔法方法
开发语言·python
無限進步D1 小时前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
土司大王1 小时前
LeetCode hot100——33.搜索旋转排序数组:Java 二分模板与 O(log n) 实现
数据结构·算法·leetcode
不穿鞋的懒羊羊1 小时前
STL容器
算法
huang5791471 小时前
多线程环境下的共享数据结构安全问题分析4
算法
qq_401700411 小时前
Qt QUrl 详解与代码示例
开发语言·数据库·qt
zh路西法1 小时前
【玩转VLA具身智能机械臂】(四):点云分割与 OBB 夹取——从 PCA 失效到主动扫描
c++·机械臂·pca·vla·planner·obb·moveit2