C++ 基础类型万能转换器

烂漫一生 提交于 2020-08-11 01:00:57

你可能还在使用atoi、atof、itoa等函数进行类型转换,赶紧看过来,用一个函数,解决所有支持io流类型的转换。

//基础类型转换
template<typename OUT,typename IN, typename std::enable_if<!std::is_same<OUT, IN>::value, int>::type N = 0>
OUT Convert(const IN& val)
{
	std::stringstream ss;
	ss << val;//向流中传值
	OUT result;//这里存储转换结果
	ss >> result;//向result中写入值
	return result;
}

//输入、输出类型一致
template<typename OUT,typename IN, typename std::enable_if<std::is_same<OUT, IN>::value, int>::type N = 0>
OUT Convert(const IN& val)
{
    std::cout << "same" << std::endl;
	return val;
}

测试代码:

int main()
{
    std::cout << Convert<int>("123") << std::endl;

    std::cout << Convert<int>(567) << std::endl;

    std::string str = "789.45";
    std::cout << Convert<double>(str) << std::endl;

     std::cout << Convert<std::string>(46.89) << std::endl;
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!