【发布时间】:2017-04-01 02:51:03
【问题描述】:
我正在阅读 Bjarne Stroustrup 编写的Programming Principles and Practice Using C++,我被困在第 204 页,关于 constexpr,似乎我无法编译书中的代码示例: p>
constexpr double xscale = 10;
constexpr double yscale = 0.8;
constexpr Point scalePoint(Point p)
{
return{ xscale * p.x, yscale * p.y };
}
Point 是一个有两个成员 x y 和一个构造函数的类:
class Point
{
double x;
double y;
Point(double inX, double inY)
: x(inX),y(inY)
{
}
};
我得到的错误是:
Error (active)
function "scalePoint" (declared at line 13) was previously not declared constexpr
【问题讨论】:
-
在哪里你得到错误?您能否尝试创建一个Minimal, Complete, and Verifiable Example 并向我们展示,包括您如何调用该函数。
-
如果您要返回
Point,您可能还需要将构造函数设为constexpr。 -
这个错误听起来好像你在你发布的代码之外的某个地方有一个
scalePoint的原型,它声明时没有constexpr。 -
大多数编译器会告诉你之前的声明在哪里。继续阅读!
标签: c++