尖括号被解释为模板化函数中的模板类型

时间:2013-04-09 21:50:50

标签: c++ templates

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_'不是类或命名空间

1 个答案:

答案 0 :(得分:2)

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

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

但你错误输入了?之一。为什么不在多行上执行此操作,而不是试图以这种方式一起填充它?