C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – constexpr函数的主体不是return语句大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在下面的程序中,我在func()中添加一个显式的return语句,但编译器给出了以下错误

@H_167_7@m.cpp: In function ‘constexpr int func(int)’: m.cpp:11:1: error: body of constexpr function ‘constexpr int func(int)’ not a return-statement }

这是代码

#include <iostream>
using namespace std;

constexpr int func (int X);

constexpr int func (int X) 
{
    if (x<0)                
        x = -x;
    return x; // An explicit return statement 
}

int main() 
{
    int ret = func(10);
    cout<<ret<<endl;
    return 0;
}

我使用以下命令在g编译器中编译程序.

g++ -std=c++11 m.cpp

我在函数添加了return语句,然后为什么我出错了?

解决方法@H_403_29@
C 11的constexpr功能比这更具限制性.

cppreference开始:

@R_674_10229@以这样说:

constexpr int func (int X) { return x < 0 ? -x : x; }

static_assert(func(42) == 42,"");
static_assert(func(-42) == 42,"");

int main() {}

请注意,此限制已在C 14中解除.

大佬总结

以上是大佬教程为你收集整理的c – constexpr函数的主体不是return语句全部内容,希望文章能够帮你解决c – constexpr函数的主体不是return语句所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。