Template parameters (C++ only)

原创 2008年10月03日 21:21:00

在C++中有三种模板参数:

在模板参数的声明中即可以使用关键字class也可以使用关键字typename,但是在模板参数的声明中不能指定存储的类型(static 和 auto)

 

1.Type template parameters (C++ only)

Type template parameter 声明语法 
>>-+-class----+--identifier--+---------+-----------------------><
   '-typename-'              '-=--type-'  
identifier 是type的名字.
2.

non-type template parameter 的语法声明类似于下面几种形式之一:

  • 整型或枚举
  • 对象或函数的指针
  • 对象或函数的引用
  • 成员指针

被声明为数组或函数的Non-type template parameters 被分别转化为了指针或者函数指针.

template<int a[4]> struct A { };
template<int f(int)> struct B { };

int i;
int g(int) { return 0;}

A<&i> x;
B<&g> y;
 
 

你可以用const 或 volatile限定 non-type template parameter.不能将non-type template parameter 声明为float point, class,或 void type.

Non-type template parameters 不是lvalues.

 

3.Template template parameters (C++ only)

Template template parameter 声明语法  
>>-template--<--template-parameter-list-->--class--+------------+--+------------------+-><
                                                   '-identifier-'  '-=--id-expression-'  

下面是用 template template paramete的一个例子:

template<template <class T> class X> class A { };
template<class T> class B { };
A<B> a;

 

 

 

 

Retrofit2.0中注解使用套路

之前有讲过Retrofit2.0的简单使用和解析。最近在做Retrofit替换之前使用的AsyncHttpClient,在替换的过程中遇到一些之前忽视的小细节。自己感觉知道这几点在开发中灵活使用Ret...
  • stven_king
  • stven_king
  • 2016年08月30日 19:14
  • 8857

Retrofit源码解析

square公司开源了一系列的优秀库,比如Retrofit,OkHttp,Picasso等, 前面简单分析了Picasso的源码,这里来分析下Retrofit的使用:一、gradle添加依赖comp...
  • woliuyunyicai
  • woliuyunyicai
  • 2016年05月23日 08:54
  • 7931

freemarker写select组件报错总结(五)

1、错误描述 六月 26, 2014 10:44:49 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc...
  • you23hai45
  • you23hai45
  • 2014年06月26日 22:47
  • 2692

C++ - 非类型模板参数(nontype template parameters) 使用 及 代码

非类型模板参数(nontype template parameters) 使用 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/det...
  • u012515223
  • u012515223
  • 2013年12月09日 14:16
  • 6717

三、非类型模板参数(Nontype Template Parameters)

对于函数模板和类模板,模板参数不一定必须是类型,也可是是常规的数值。当以类型(type)作为模板参数的时候,代码中未决定的是类型;当以一般的数字(non-type)作为模板参数的时候,代码中待定的内容...
  • Mrhiuser
  • Mrhiuser
  • 2017年12月29日 16:24
  • 41

Number/for...in/检索/||/&&/Syntactic Sugar/Default Parameters/Template Literals/Multiline Strings/this

1.Number① number.toExponential(fractionDigits) Math.PI.toExponential(2);//"3.14e+0" ② number.toFixed...
  • m0_37851778
  • m0_37851778
  • 2017年08月07日 08:00
  • 160

freemarker.core.InvalidReferenceException: Expression parameters.parseContent is undefined on line 45, column 28 in template/aja

严重: Expression parameters.parseContent is undefined on line 45, column 28 in template/ajax/head.ftl....
  • lingfeng16
  • lingfeng16
  • 2011年05月06日 16:21
  • 5755

Why C++ Supports both Class and Typename for Type Parameters

Recently, someone asked me why we support both class and typename within C++ to indicate a type para...
  • eijnew
  • eijnew
  • 2012年03月21日 14:50
  • 1264

R--安装reshape 报错:Package which is only available in source form, and may need compilation of C/C++/Fo

对变量进行重命名(比如data.frame的列名称),有如下几种方法。 假设data.frame 的数据mydata如下: 有4列,想把后两列名称修改为weight1,weight2。方法1:调用...
  • xidianliutingting
  • xidianliutingting
  • 2016年12月03日 21:12
  • 685

C++primer里的template的用法

  • 2015年03月09日 21:04
  • 113KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Template parameters (C++ only)
举报原因:
原因补充:

(最多只允许输入30个字)