Я пытаюсь воспроизвести пример ConstexPR из книги Stroustrup «Язык программирования C ++» 4th Ed, стр. 265-266. Я использую сообщество Visual Studio 2022. Приведенный ниже код не компилируется, с сообщением «Ошибка C2662:« point :: up (int) »: не может преобразовать« указатель из «const point» в «point & '
1> преобразование теряет квалификаторы "< /p>
Код: Выделить всё
struct Point {
int x, y, z;
constexpr Point up(int d) { return { x,y,z + d }; }
};
int main()
{
constexpr Point p{1, 2};
p.up(1);//fails here, no problem if constexpr is removed on the line above
return 0;
}
был бы благодарен за диагностику и объяснения
Подробнее здесь:
https://stackoverflow.com/questions/794 ... -vs-c-2022