【发布时间】:2016-04-10 05:59:49
【问题描述】:
我最近在做一个项目,并希望在执行非标准操作时优先考虑某些类型。为此,我试图以某种方式使用模板来确定正在使用哪种数据类型。我写的代码显然不起作用,但它让我知道我想要做什么
#include <iostream>
template <type1,type2>
typename determine(type1 a, type2 b)
{
if (typeid(type1) == typeid(int) || typeid(type2) == typeid(int))
return int;
else return double;
}
int main()
{
int a = 3;
double b = 2;
std::cout << (static_cast<determine(a, b)>(a) / static_cast<determine(a, b)>(b)) << std::endl;
}
有没有办法确定返回一些我可以实际用来决定使用什么数据类型的东西?
【问题讨论】: