我正在尝试编译以下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:在函数'Conconexpr double nth(double, int)':example4.cpp:24: 9: error:调用非Conconexpr函数'std::basic_ostream
谁能推荐一下吗?
谢谢你。
在constepr
函数
上下文中,不允许流式传输到std::cout
。事实上,只有有限的一组东西是正确的。阅读constexpr
上的CPP参考文章。
看看这段代码: < code>Foo有一个成员< code > Foo::bar::nonConstexpr ,它有一个非Constexpr构造函数。所以,我的期望是,这不应该编译。但是它用gcc,clang和msvc编译。这是编译器的bug,还是某个规则允许这段代码编译? 如果我直接将 成员添加到 中,代码将不再编译。 (我遇到了这个问题,因为我期望对全局对象进行静态初始化,但它得到了动态初始化
我在使用g-12时遇到了一个错误,它在clang-13中没有出现。特别是,这段代码: 使用clang编译,但使用g会产生错误: 奇怪的是,如果我删除了对解调器的constexpr要求,那么这个例子编译和运行时就不会出错。 你知道这里发生了什么吗?
请帮帮我 致命错误:在第104行的/home/u357965800/public_html/include/class.admin.php中对非对象调用成员函数prepare()
我是C++的新手,我写了一个小程序来了解赋值如何处理对象。这个页面(http://www.cplusplus.com/doc/tutorial/classes2/)的cpp文档提示我这样做。在这一页上,它指出: 隐式版本[复制赋值操作符]执行浅层复制,这适用于许多类,但不适用于具有指向对象的指针的类,这些对象处理其存储。在这种情况下,不仅类会冒两次删除指向对象的风险,而且赋值会通过在赋值之前不删除
这是我代码的一部分 我得到一个错误致命错误:对$stmt行上的非对象调用成员函数bind_param()-
我得到一个错误与此文本:(对不起,我的英语不好,我来自德国!) 错误: