gpt4 book ai didi

c++ - 显式模板函数和方法特化

转载 作者:搜寻专家 更新时间:2023-10-31 00:43:24 24 4
gpt4 key购买 nike

我一直在寻找一个明确的答案,我只是从网上捕捉点点滴滴。

我有一个函数,它需要根据类型变量采取不同的行动。该函数不接受任何参数,因此重载不起作用,从而导致模板特化。例如:

//Calls to this function would work like this:
int a = f();
int b = f<int>();
int c = f<char>();
//...

首先,这在语法上是否可行?我觉得是的。继续。

我在定义这个函数时遇到了问题,因为我对显式特化的语法很着迷。我已经尝试了多种不同的方法,但我还没有得到一个简单的示例。

其次,我试图(最终)将该模板函数变成一个(非模板)类的模板方法。当我来到那座桥时,我会穿过那座桥。

最佳答案

嗯,这是可能的,但不是一件好事。显式模板函数特化有点暗角,但这里是你如何做的:

template< typename T > int f(){ ... }

template<> int f<int>(){ ... }
template<> int f<char>(){ ... }

一些相关阅读:http://www.gotw.ca/gotw/049.htm

关于c++ - 显式模板函数和方法特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com