предупреждение: предварительное объявление 'struct GLUquadric' - PullRequest
1 голос
/ 09 ноября 2010

Я получаю следующее

x.cpp: In member function ‘X’:
x.cpp:153:10: warning: possible problem detected in invocation of delete operator:
x.cpp:146:19: warning: ‘quadric’ has incomplete type /usr/include/GL/glu.h:271:7: warning: forward declaration of ‘struct GLUquadric’
x.cpp:153:10: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.

С этим кодом

146: GLUquadricObj * quadric;
147: quadric = gluNewQuadric();
148: gluQuadricNormals(quadric, GLU_SMOOTH);
149: gluQuadricTexture(quadric, GL_TRUE);
150:
151: gluSphere(quadric, object.radius(), slices, stacks);
152:
153: delete quadric; 

Я понимаю, почему это так, GLUquadricObj фактически является декларацией foward, НО

Я хочу избежать этого предупреждения.

Я бы хотел либо отключить это предупреждение для этой единственной функции.

, либо разрешить предупреждение, добавив правый заголовок.Я использовал grep в / usr / include / GL и не нашел полный тип.

Я использую Arch Linux

mesa 7.8.2-3

и

gcc 4.5.1-1

Ответы [ 2 ]

4 голосов
/ 09 ноября 2010

GLUquadricObj необходимо удалить с помощью:

gluDeleteQuadric(GLUquadricObj *);
1 голос
/ 09 ноября 2010

Вы не должны использовать delete для объектов, не выделенных с new.Не зная ничего об OpenGL, я совершенно уверен, что вы должны использовать gluDeleteQuadric здесь.

...