作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道为什么模板特化有意义?
下面的东西不是等价的吗?
模板特化:
template <typename T>
void f(T t) {
something(t);
}
template <>
void f<int>(int t) {
somethingelse(t);
}
非模板函数而不是特化:
void f(int t) {
somethingelse(t);
}
我相信这些是相同的,因为非模板功能将始终是首选。
最佳答案
这是我想出的答案:
如果模板参数不是被定义函数的参数则不同:
template <typename T>
void f() {
T t;
something(t);
}
template <>
void f<int>() {
int t;
somethingelse(t);
}
在这种情况下定义:
void f() {
int t;
somethingelse(t);
}
将使所有模板版本无法使用。
也许其他人有更好的主意。 :)
关于c++ - 为什么要使用模板特化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758158/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!