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

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

错误是:

/(foldername)/(part_filename)_templated_impl.tpp:312:89: 错误:在嵌套名称说明符中找到 ':',预期为 '::'

/(foldername)/(part_filename)_templated_impl.tpp:312:79: 错误:'variance_' 不是类或命名空间

4

1 回答 1

2

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

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

但是你打错了一个?s。为什么不在多行上执行此操作,而不是尝试以这种方式将它们全部塞满呢?

于 2013-04-09T21:52:08.367 回答