Я пытаюсь скомпилировать этот код, но g ++ жалуется на ZERO
с неполным типом. Означает ли это, что в C++ структура не может содержать экземпляр static constexpr
? Если да, то почему?C++ static constexpr field с неполным типом
struct Cursor
{
size_t row,column;
static constexpr Cursor ZERO {0,0};
//error: constexpr const Cursor Cursor::ZERO has incomplete type
};
EDIT: Я понимаю, что Cursor
не может иметь полный вид, когда я объявляю ZERO
. Я хотел бы знать: есть ли у меня способ ZERO
, принадлежащий Cursor
и до сих пор являющийся constexpr
?
могли бы вы предоставить сообщение об ошибке? –
Я подозреваю, что это из-за constexpr & inline инициализации. – Quentin
Переместите инициализацию вне объявления класса. –