私は、このリンクでは、このC++のコードを実行しようとしています: https://searchcode.com/codesearch/raw/108480099/ と、私はこの部分でエラーが発生します:布のOpenGLとシミュレーションおよびC++
void drawTriangle(Particle *p1, Particle *p2, Particle *p3, const Vec3 color)
{
glColor3fv((GLfloat*) &color);
glNormal3fv((GLfloat *) &(p1->getNormal().normalized())); //line 249
glVertex3fv((GLfloat *) &(p1->getPos()));
glNormal3fv((GLfloat *) &(p2->getNormal().normalized())); //line 252
glVertex3fv((GLfloat *) &(p2->getPos()));
glNormal3fv((GLfloat *) &(p3->getNormal().normalized())); //line 255
glVertex3fv((GLfloat *) &(p3->getPos()));
}
エラー:
249:58: error: taking address of temporary [-fpermissive]
glNormal3fv((GLfloat *) &(p1->getNormal().normalized()));
252:58: error: taking address of temporary [-fpermissive]
glNormal3fv((GLfloat *) &(p2->getNormal().normalized()));
255:58: error: taking address of temporary [-fpermissive]
glNormal3fv((GLfloat *) &(p3->getNormal().normalized()));
この質問は実際に尋ねられましたhere:
If you store it in a variable
auto instance = p1->getNormal().normalized();
You can take the address ofinstance
.
申し訳ありませんが、私は答えを理解していません。それを適用する方法?
私はC++の新機能で、シミュレーションを実行したいだけです。 私が間違った方法で質問した場合はお詫び申し上げます。
私は質問が尋ねられたと言いました。 – Cam