元编程:constexpr +特例化 判断质数

news2024/11/19 19:33:17

重点:

1.constexpr 函数支持在编译期间完成计算

2.特例化是模板中一种定义

using namespace std;

//编译期进行判断
constexpr bool isPrime(unsigned int p)
{
	for (unsigned int d=2;d<=p/2;++d)
	{
		if (p % d == 0)
		{
			return false;
		}
	}
	return p > 1;
}

template<int sz, bool = isPrime(sz)>
struct Helper;

//特例化
template<int sz>
struct Helper<sz,false>
{
	int num = 10;
	string name = "不是质数";
};

//特例化
template<int sz>
struct Helper<sz, true>
{
	int num = 20;
	string name = "质数";
};


int main()
{
	Helper<20> first;
	Helper<7> second;
	cout << "first name :" << first.name << endl;
	cout << "second name :" << second.name << endl;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【安全硬件】Chap.6 芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁Untrusted IC Supply Chain Threats

【安全硬件】Chap.6 芯片生产猜疑链与SoC设计流程&#xff1b;可能会存在的安全威胁Untrusted IC Supply Chain Threats背景1. IC和半导体产业的全球化2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats可能会存在的安全威胁3. SoC Design Flow主要参考来源背景 在现代 …

专属 Python 开发者的完美终端工具

目录 前言 1.Rich 兼容性 2.Rich 安装说明 3.Rich 的 Print 功能 4.自定义 Console 控制台输出 5.Console 控制台记录 6.表情符号 7.表格 8.进度条 9.按列输出数据 10.Markdown 11.语法突出显示 12.错误回溯(traceback) 前言 今天给大家推荐一个非常精美的终端工…

数学建模——线性规划

目录 一. 线性规划 1.基本概念 线性规划的标准形式为&#xff1a; 线性规划的解&#xff1a; 线性规划三要素&#xff1a; 灵敏度分析&#xff1a; 2.matlab的实现 二. 整形规划 1.整型规划分类 2.基础模型 2.1 非线性约束条件的线性化 3.模型求解 一.钢管下料问题…

【模板初阶】

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.4.1 隐式实例化 2.4.2 显式实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 4 总结 1. 泛型编程 如何实现一个通用的…

【Linux】简单理解静态库(.a)和动态库(.so)

在程序运行的基础原理这篇文章中&#xff0c;最后的代码进行链接过程&#xff0c;我们提到了动态库和静态库的概念。那么什么是动态库和静态库呢&#xff1f;我们来简单理解一下 静态库和动态库1.静态库1.1 静态链接优点1.2 静态链接缺点2.动态库2.1 动态链接的优点2.2 动态链接…

Ae 案例:制作漏光效果

本文介绍使用 Ae 内置效果插件制作漏光效果 Light Leak的一般方法与步骤。效果视频1、新建合成。持续时间&#xff1a;10 秒。2、新建纯色图层&#xff0c;命名为“漏光效果”&#xff0c;然后添加分形杂色 Fractal Noise效果。调整出如云朵一般柔和且层次多的分形杂色图。分形…

TCP中的状态转移(三种情况)

文章目录前言一、 TCP的生命周期二、另外两种挥手情况三、经典四问总结前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎大家加入&#xff0c;一起交流学习~~ 在正常情况下&#xff0c;TCP要经过三次握手建立连接&#xff0c…

部署Web项目 (Linux)

部署Web项目 -- Linux一、Linux 环境搭建二、Linux 常用命令三、搭建 Java 部署环境3.1 JDK3.2 Tomcat3.3 MySQL四、部署 Web 项目4.1 什么是部署4.2 数据库建表4.3 构建项目并打包4.4 拷贝到 Tomcat 中4.5 验证一、Linux 环境搭建 这里我们使用的方法是购买云服务器 (CentOS …

组合数素数判定++和* *t=*afor循环你真的门儿清吗救济金发放

目录 P63_习题4-1_组合数 为什么m n-m P64_习题4-3_素数判定 为什么要floor 到底为什么判断到sqrt(n)即可 和* *t*a for循环你真的门儿清吗 为什么要把较大的数组放在main函数外 P82_eg4-3_救济金发放_UVa133 P63_习题4-1_组合数 防止溢出&#xff0c;又因为m < n…

【JavaScript】module let Object.setPrototypeOf()以及箭头函数

案例&#xff1a;选项卡 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

python 3 添加环境变量后 仍然无法用cmd输入python访问,而是弹出应用商店 | 两种解决方法

问题描述 今天重装python3.10后发现即使正确添加环境变量时&#xff0c;仍然无法用cmd输入python或python3访问&#xff0c;而是弹出应用商店。但是如果输入cmd里输入py是可以运行的&#xff08;证明python是正常安装好的&#xff09;。 这里给出两种解决方法&#xff0c;一种…

指针进阶(详解)

指针进阶一.字符指针二.指针数组1.一次打印多个字符串2.模拟二维数组三.数组指针1.定义2.应用四.函数指针五.函数指针数组六.指向函数指针数组的指针七.回调函数在开始这篇之前&#xff0c;前面有两篇指针初阶&#xff0c;如果需要的话可以去看看哟&#xff01;指针初阶1&#…

网络安全等级保护确定定级对象

声明 本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全等级保护确定定级对象 信息系统 定级对象的基本特征 作为定级对象的信息系统应具有如下基本特征&#xff1a; 具有确定的主要安全责任主体&#xff1…

【MySQL进阶教程】SQL优化

前言 本文为 【MySQL进阶教程】SQL优化 相关知识&#xff0c;下边将对主键优化&#xff0c;order by优化&#xff0c;group by优化&#xff0c;limit优化&#xff0c;count优化&#xff0c;update优化等进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &am…

利用Python为女神制作一个专属网站

快跟随小编一起学习一下如何利用Python语言制作一个专属的网站送给女神吧&#xff01; 如觉得博主文章写的不错或对你有所帮助的话&#xff0c;还望大家多多支持呀&#xff01;关注、点赞、收藏、评论。 目录如觉得博主文章写的不错或对你有所帮助的话&#xff0c;还望大家多多…

1995-2019年全球清廉指数

1995-2019年全球清廉指数 1、时间&#xff1a;1995-2019年 2、来源&#xff1a;透明国际&#xff08;Transparency International&#xff09; 3、区域&#xff1a;全球170多个国家 4、指标说明&#xff1a; 清廉指数&#xff08;Corruption Perceptions Index&#xff0c…

【自学C++】C++ short

C short C short教程 C 中的 short 用来表示一个 整数&#xff0c;也可以叫做短整型&#xff0c;如果我们需要表示的整数比较小&#xff0c;那么我们可以使用 short 来定义&#xff0c;这样可以节省系统资源。 C short定义详解 语法 short int varname value; short varn…

【django】关联模型类中数据的增删改查操作总结

文章目录一、多对一正向操作1、改方法一方法二2、删3、查反向操作案例1&#xff1a;查询百度渠道下的所有学生信息案例2&#xff1a;新增一个百度渠道下的学生1、增直接创建Student对象2、改方法一&#xff1a;add()案例1&#xff1a;将s1,s2,s3添加到百度渠道中方法二:替换对象…

【Java】遨游在多线程的知识体系中(二)

前言&#xff1a;一、分析上篇多线程不安全原因1. count 操作是三个步骤&#xff0c;load add save2. 多个线程之间的调度是无序的&#xff0c;两个线程的上述三个操作可能存在多种不同的相对顺序3. 线程针对变量的修改不是原子的4. 内存可见性5.指令重排序二、synchronize 关键…

Java中clone的浅拷贝和深拷贝区别以及方法详解

克隆定义 在 Java 中&#xff0c;克隆是创建原始对象的精确副本的过程。它本质上意味着能够创建一个与原始对象具有相似状态的对象。 复制对象&#xff0c;首先要分配一个和源对象同样大小的空间&#xff0c;在这个空间中创建一个新的对象。 new对象和clone区别 使用new操作符创…