小编pro*_*mer的帖子

c ++中的条件运算符错误?

这些演示函数不应该是gcc中的无限循环,因为条件运算符应该只评估活动部分.

它们在visual studio 2015中正确编译,但在g ++ 6.3中给出了无限递归错误编译错误.我错过了什么?

template <int n>
constexpr int infinite_loop_error(){
   return (n)  ? infinite_loop_error<n - 1>() : 0;
}

template <int n> 
constexpr int infinite_loop_error_2(){
   if (n) return infinite_loop_error_2<n - 1>(); 
   else   return 0;
}

void main() {
  infinite_loop_error<3>();
  infinite_loop_error_2<3>();
}
Run Code Online (Sandbox Code Playgroud)

c++ gcc conditional-operator

2
推荐指数
1
解决办法
135
查看次数

标签 统计

c++ ×1

conditional-operator ×1

gcc ×1