modern cplusplus 之 std::common_type

一个例子

  #include <type_traits>
	template <typename T, typename U>
	typename std::common_type<T, U>::type max(T a, U b) 
	{
		return b < a ? a : b;
	}
  • 上面的函数, 使用下面的代码输出
/// 代码1
std::cout << tt::max(1.3, 2) << "\n\n";
/// 代码2
std::cout << tt::max(1, 2.0) << "\n\n";
  • VS2015的输出结果是:

结论

可以用 std::common_type 来获取不同类型中最通用的类型

posted @ 2022-03-10 19:52  mohist  阅读(141)  评论(0编辑  收藏  举报