整数映射和类型映射
来源:互联网 发布:爸爸去哪儿 马蓉 知乎 编辑:程序博客网 时间:2024/05/21 18:42
是的,函数无法偏特例化,但是这并不是没有解决的办法。可是这里有问题,我们真的需要吗?重载是一个与之有相同功能的技术:
struct ST1...{};
struct ST2...{};
struct ST3...{};
void fun(ST1& rh);
void fun(ST2& rh);
void fun(ST3& rh);
struct ST2...{};
struct ST3...{};
void fun(ST1& rh);
void fun(ST2& rh);
void fun(ST3& rh);
但是不要忘了,这种情况下编译器是要对每个函数以及调用检查的,如果你某个函数或某个函数的某一部分从未被使用到,你无法跳过,如果编译器不跳过你会收到一个错误,你可以使用模板了。
函数的偏特化也是使用了重载技术,但是毕竟它使用了模板,所以它有模板的特性。
这是两个基础的函数,在任何使用它们的地方,都不会有实质变化:
template <int v>
struct Int2Type
...{
enum ...{value = v};
};
template <class T>
...{
typedef T OriginalType;
};
struct Int2Type
...{
enum ...{value = v};
};
template <class T>
...{
typedef T OriginalType;
};
如此你可以这样使用:
doSomething(arg,Int2Type<2>());
doSomething(arg,Int2Type<0>());
doSomethingEx(arg,Type2Type<int>());
doSomethingEx(arg,Type2Type<MyClass>());
是否要提供重载级得语法包装是跟技术无关的小问题了。
- 整数映射和类型映射
- [C++模板技术] 整数映射为类型
- 映射 SQL 和 Java 类型
- 映射 SQL 和 Java 类型
- Hibernate配置文件和映射元素解释---内置映射类型
- 映射和类型库的简单使用
- 类型和值之间的映射(Int2Type)
- Hibernate对象状态和基本映射类型
- 映射Blob和Clob类型@Lob
- hibernate映射时间和枚举类型
- Part3.JNI类型映射和参数传递
- python学习05-映射和集合类型
- Kotlin-->Kotlin 和 Java 类型映射
- elasticsearch的object类型和动态映射
- Java 时间和日期类型的 Hibernate 映射及二进制映射及大文本的映射
- Hibernate类型映射之内置类型映射
- 探讨关于 整数除法 和 取余 的映射规律
- 动态映射和静态映射
- SQL的同步
- 传递同一sessionID
- 转贴一篇如何成为Java高手
- MS VC++ 6.0 fatal error C1010的解决方法
- 怎样将.Net程序部署到没有安装.Net Framwork的机器上?
- 整数映射和类型映射
- 安装ASP.NET AJAX
- 桌面配置evolution收发gmail邮件
- sql语句子查询中的两种排序方式
- 赴日一面小经验
- javascript小技巧
- Output Control 函数
- (转贴)仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'TableName' 中为标识列指定显式值。
- 2007.08.19 晴