Pre-C ++ 14模板元编程和条件运算符

时间:2017-10-01 02:07:26

标签: c++ c++11 constexpr conditional-operator

来自cppreference.com

  

这种条件运算符常用于C ++ 11 constexpr   在C ++ 14之前编程。

std::string str = 2+2==4 ? "ok" : throw std::logic_error("2+2 != 4");

cppreference是指什么?什么是前C ++ 14成语以及为什么在C ++ 14中这种技术不再相关?

1 个答案:

答案 0 :(得分:3)

中,基本上,constexpr函数中不能有多个语句。在你可以。

constexpr bool str(int x){
  return  2+2==x ? true : throw std::logic_error("2+2 != x");
}

vs

constexpr bool str(int x){
  if (2+2==x)
    return true;
  else
     throw std::logic_error("2+2 != x");
}