modes_[pos].variance = (sigmanew < 4) ? (4) : sigmanew > 5 * variance_ : sigmanew;

我在模板化类的模板化函数中有一行。该行中的尖括号被解释为数据类型定义,并引发错误。我该如何解决这个问题?

错误是:

最佳答案

我认为<>没有任何问题。您的三元运算符中有两个冒号。那可能是不对的。您正在尝试的样子是:

modes_[pos].variance = (sigmanew < 4) ? (4)
                                      : (sigmanew > 5) ? variance_
                                                       : sigmanew;

但是您输错了?之一。为什么不在多行上执行此操作,而不是尝试以这种方式将其全部塞入?

10-08 11:24