繁体   English   中英

C++ 错误:调用非 constexpr 函数

[英]C++ error: Call to non-constexpr function

我正在尝试编译以下 C++ 代码(另存为 example4.cpp)

#include <iostream>

using namespace std;

constexpr double nth(double x, int n);//initialization

int main()
{
double x=2;
int n=5;
nth(x,n);//Function call
return 0;
}


constexpr double nth(double x, int n)   // function definition
{
    double res = 1;
    int i = 0;
    while (i<n) {   // while-loop: do while the condition is true
         res*=x;
         ++i;
    }
cout << res;
cout << endl;
    return res;
}

此代码给出以下错误:

example4.cpp:在函数'constexpr double nth(double, int)'中:example4.cpp:24:9:错误:调用非constexpr函数'std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream <_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream]' cout << res;

任何人都可以请建议吗?

谢谢你。

constexpr函数中不允许流式传输到std::cout 事实上,只有有限的一组东西是。 阅读关于constexprcppreference 文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM