Я читаю Принципы и практика программирования с использованием C++, написанные Bjarne Stroustrup, и я застрял на странице 204, о constexpr, кажется, что я не могу сделать пример кода в книге компиляции:Как создать функции constexpr в C++
constexpr double xscale = 10;
constexpr double yscale = 0.8;
constexpr Point scalePoint(Point p)
{
return{ xscale * p.x, yscale * p.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
* Где * У вас есть ошибка? Не могли бы вы попытаться создать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и показать нам, в том числе о том, как вы вызываете эту функцию. –
Если вы возвращаете 'Point', вы также можете создать конструктор' constexpr'. –
Ошибка заставляет это звучать так, как будто у вас есть прототип 'scalePoint' где-то вне кода, который вы отправили, который объявлен без' constexpr'. – Dolda2000