我有一个模板类:
template <int N>
class Object<N>
{
// ...
}
例如,我想创建一个在内部添加内容的函数,并返回将int N
参数设置为最大值的类:
template <int N1, int N2>
Object<std::max(N1, N2)> AddObjects(const Object<N1> & object_1, const Object<N2> & object_2)
{
// ...
}
我必须在C ++ 11中这样做,但遗憾的是不是C ++ 14(其中std::max
是constexpr
)。是否可以在C ++ 11中使用?
答案 0 :(得分:4)
您可以改为使用三元运算符:
template <int N1, int N2>
Object<(N1 > N2)? N1 : N2> AddObjects(const Object<N1> & object_1, const Object<N2> & object_2) {
// ...
}