代码之家  ›  专栏  ›  技术社区  ›  Sneftel

为什么在constexpr函数中不允许goto?

  •  26
  • Sneftel  · 技术社区  · 7 年前

    C++14有一些规则,规定了你在游戏中可以做什么和不能做什么 constexpr asm ,没有静态变量)似乎很合理。但该标准也不允许 goto 在里面 常量表达式 函数,即使它允许其他控制流机制。

    我以为我们已经过去了“ goto对于编译器来说很难

    2 回复  |  直到 6 年前
        1
  •  21
  •   Barry    7 年前

    我的理解是有一种放松的欲望 constexpr 常量表达式 只是为了能够使用 goto 常量表达式 在C++14中,其功能远比 常量表达式

    也就是说,确实存在这样一种观点: 转到 常量表达式 initial proposal 用于放松 常量表达式 允许这样做。所以,可能只需要有人希望它写一个提案来添加它。那个人 可能是你! 显然是两年前的Ville Voutilainen N4472 ,其特点是与以下问题段落非常相关:

    有一种未经证实的传闻称,在常量表达式中禁止后藤更多是出于口味原因,而不是技术原因,这意味着在常量表达式中支持后藤并不特别难实现。我不能说这对于一般的实现是否正确。

    那个 有人可能就是你!

        2
  •  0
  •   jszpilewski    7 年前

    constexpr goto 可能会跳转到函数末尾尚未计算的某个部分。因此正确连接调用和执行 转到