2016-02-25 82 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真的很新,有時候運行不好。我的不好,它給出了一個錯誤,因爲它無法處理函數模板。 –