不同类型的c++模板错误

C++ Template Errors with different types

本文关键字:错误 c++ 同类型      更新时间:2023-10-16

我需要从下面的语句中找出所有可能的,至少三个错误。

template<typename A, typename B, typename C>
C myfunction(const A& a, const B& b)
{ 
   if ( a < b )  return (C) a;
   else return (C) b;
}
我的答案是
  1. typename A和B可能有不同的类型,导致错误,更糟糕的是操作符<</p>

  2. typename C可以不同于A和B,然后它对定义为const的A, B对象进行更改

  3. typename A可以是整型,但是对于整型我们不使用常量引用,只对对象使用。

我的第三个答案是错的....

谁能解释为什么我的答案是错误的,所有可能的错误,可以从这个模板发生?前两个答案是我的功劳,但我不太喜欢。有人有更好的解决方案吗?

谢谢,

从A到C或B到C的强制转换要么是多态的,要么是兼容的类型。