template<int N>:非类型模板参数

template<int N> 是一个典型的非类型模板参数的例子。这里的 N 是模板的参数,但它不是一个类型,而是一个具体的整数值。这意味着,当你实例化模板时,你必须为 N 提供一个常量整数值

示例:

template<int N>
struct Array { int data[N]; // 创建一个大小为 N 的数组 };
int main() { Array<5> arr; // N = 5,创建一个大小为 5 的数组 }
 

在这个例子中,N 是一个模板参数,它必须是一个整数。模板实例化时,N 的值会被替换到模板定义中。

特点:

  • template<int N> 中的 N 是一个非类型模板参数,表示一个常量值,比如整数、指针或枚举值。
  • 编译时必须提供一个常量来实例化模板。

2. template<N>:占位符,需结合类型声明

template<N> 本身是不完整的,不能单独使用。N 在这种情况下代表一个类型占位符,但需要你用 typenameclass 来修饰它以表示它是一个类型参数。

示例(typename 用法):

template<typename N>
struct Wrapper {
N value; // N 是一个类型
};

int main() {
Wrapper<int> w; // N 是 int 类型
w.value = 10;
}

这里的 N 代表一个类型占位符,模板实例化时,你需要为 N 提供一个具体的类型,例如 intfloat 等。

示例(class 用法):

template<class N>
struct Wrapper {
N value; // N 是一个类型
};

int main() {
Wrapper<double> w; // N 是 double 类型
w.value = 3.14;
}

在 C++ 中,typenameclass 可以互换使用来声明类型模板参数。

特点:

  • template<N> 中的 N 必须用 typenameclass 来声明为一个类型参数。
  • N 在模板中表示一个类型,而不是具体的值。

总结:

  • template<int N>:用于非类型模板参数N 必须是一个常量(例如整数、枚举、指针等),实例化时需要传递一个具体的值。
  • template<N>:表示一个类型模板参数,但它必须用 typenameclass 修饰,N 代表一个类型,实例化时需要传递一个具体的类型。

因此,template<int N>template<N> 的区别在于,前者用来接收常量值,后者用来接收类型,且后者需要额外的关键字修饰。

模板声明的两种形式:template<int N> 和 template<N>的更多相关文章

  1. C++:一般情况下,设计函数的形参只需要两种形式

    C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...

  2. SQL 关于apply的两种形式cross apply 和 outer apply(转)

    转载链接:http://www.cnblogs.com/shuangnet/archive/2013/04/02/2995798.html apply有两种形式: cross apply 和 oute ...

  3. SQL 关于apply的两种形式cross apply 和 outer apply

    SQL 关于apply的两种形式cross apply 和 outer apply 例子: CREATE TABLE [dbo].[Customers]( ) COLLATE Chinese_PRC_ ...

  4. SQL关于apply的两种形式cross apply和outer apply(转载)

    SQL 关于apply的两种形式cross apply 和 outer apply   apply有两种形式: cross apply 和 outer apply   先看看语法:   <lef ...

  5. 转:SQL 关于apply的两种形式cross apply 和 outer apply

    原文地址:http://www.cnblogs.com/Leo_wl/archive/2013/04/02/2997012.html SQL 关于apply的两种形式cross apply 和 out ...

  6. SQL 关于apply的两种形式cross apply 和 outer apply, with cube 、with rollup 和 grouping

    1). apply有两种形式: cross apply 和 outer apply先看看语法: <left_table_expression> {cross|outer} apply &l ...

  7. AngularJS的日期格式化有两种形式

    AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expression 即 你在$scope ...

  8. MyBatis collection的两种形式——MyBatis学习笔记之九

    与association一样,collection元素也有两种形式,现介绍如下: 一.嵌套的resultMap 实际上以前的示例使用的就是这种方法,今天介绍它的另一种写法.还是以教师映射为例,修改映射 ...

  9. jquery插件的两种形式

    这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...

  10. 在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编

    在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编 ...

随机推荐

  1. java的自动拆箱会发生NPE

    平时的小细节,总能在关键时刻酿成线上事故,最近在代码中使用了Integer的自动拆箱功能,结果NPE(NullPointException)了,悲剧啊... 一.何为自动拆箱 要说自动拆箱,就必须说自 ...

  2. leetcode2397. 被列覆盖的最多行数 回溯法/枝剪

    第一次手搓一个回溯法,超时后采用枝剪勉强通过 class Solution { int max=0; int numSelect; public int maximumRows(int[][] mat ...

  3. 关于npm ERR! 的一个解决方案

    最近在网上找了一个js写的项目,npm下载某些组件总是失败,后经学习了解到了cnpm.使用cnpm时就都可以正常下载,但是下载完成之后程序无法正常启动,所以cnpm下载也是失败的. 后面我经过自己手动 ...

  4. NPIO在指定位置插入新列(附案例和代码)

    背景: I could be mistaken as I am not that familiar with NPOI, however, after a minor search, it appea ...

  5. 06 定时器和PWM(1)

    前言 前面介绍了一下外部中断,这一节主要介绍一下内部定时器和PWM,这两个知识还是比较重要的. 一.定时器 1.什么是定时器 定时器其实和计数器一样,我们通过设置一个值,当计数器运行一个计数寄存器向上 ...

  6. Apache COC闪电演讲总结【OSGraph】

    大家能看到我最近一直在折腾与OSGraph这个产品相关的事情,之前在文章<妙用OSGraph:发掘GitHub知识图谱上的开源故事>中向大家阐述过这个产品的设计理念和应用价值.比方说以下问 ...

  7. 压力测试工具httperf使用方法

    目录 压力测试工具httperf使用方法 通过tar zxvf解压httperf-0.9.0.tar.gz 进入目录 安装c++编译环境 开始编译 进入编译后的bin目录 开始测试 压力测试工具htt ...

  8. 【Vue】Re01 理论概念和入门上手

    一.Vue概述 什么是渐进式?1.把Vue作应用的一部分嵌套项目中2.如果完全抛弃其他组件和框架,Vue又具有丰富的生态和库莱支持3.Core + Router + VueX 满足项目绝大多数的需求- ...

  9. kaggle上的jax框架的环境配置(TPU版本)

    导出时间: 2024-01-18 21:00:37 星期四 python版本: Python 3.10.13 absl-py==1.4.0 accelerate==0.25.0 aiofiles==2 ...

  10. 【转载】 DQN玩Atari游戏安装atari环境bug指南

    版权声明:本文为CSDN博主「好程序不脱发」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/ningmengzh ...