2016-02-25 30 views
1

我载体声明如下:GLM ::点返回矢量

std::vector<double> vec1; 
std::vector<double> vec2; 

double result = glm::dot(vec1, vec2); 

我收到以下错误:error: no viable conversion from 'std::__1::vector<double, std::__1::allocator<double> >' to 'double'

不应该glm::dot返回一个标值(double)在这种情况下, ?

+1

为什么不使用glm矢量类型,例如'GLM :: dvec3'? – Michael

回答

4

我可能会误认我自己,但是这个错误必须来自参数类型,而不是返回类型,glm :: dot从未将任何std :: vector作为参数,并且因为它不是vec2或vec3等(而不是GLM型),可以尝试将其转换为1个尺寸值进行一名维标产品

0

只是再次重申了什么上面已经说了,试试这个:

glm::dvec3 vec1; 
glm::dvec3 vec2; 
double result = glm::dot(vec1, vec2); 
+0

这不起作用。 glm :: dot会尝试抱怨double和dvec3之间有无效的转换。 –

+0

真的吗?我只是再次查看我的代码,它对我有用。如果你给它两个dvec3,那么你会得到一个双倍的。 –

+2

是的,我想通了,CLion IDE真的很新,有时候运行不好。我的不好,它给出了一个错误,因为它无法处理函数模板。 –