C++ 基礎類型萬能轉換器

你可能還在使用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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章