不同类型的c++模板错误
C++ Template Errors with different types
我需要从下面的语句中找出所有可能的,至少三个错误。
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;
}
我的答案是
typename A和B可能有不同的类型,导致错误,更糟糕的是操作符<</p>
typename C可以不同于A和B,然后它对定义为const的A, B对象进行更改
typename A可以是整型,但是对于整型我们不使用常量引用,只对对象使用。
我的第三个答案是错的....
谁能解释为什么我的答案是错误的,所有可能的错误,可以从这个模板发生?前两个答案是我的功劳,但我不太喜欢。有人有更好的解决方案吗?
谢谢,
从A到C或B到C的强制转换要么是多态的,要么是兼容的类型。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:未在此范围内声明'reverse'