Проблема в том, что объект constexpr
подразумевает const
, что означает, что вы не можете вызвать area
, поскольку это неконстантная функция. Пометить area
как const
и все.
Или, сделав a
неконстантным, вы можете оставить area
неконстантным, что, хотя и странно, допустимо в C ++.
EDIT . Возможно, вы используете C ++ 14 или выше. Ваше впечатление, что функция constexpr
подразумевает const
, является функцией C ++ 11, которая была изменена в более поздних стандартах.