C++ 为什么GLM构造函数都是显式的?

C++ 为什么GLM构造函数都是显式的?,c++,glm-math,C++,Glm Math,我已经开始在代码中使用GLM库。看起来不错,但我不能这样做: void foo (const glm :: vec3 & arg); foo ({x, y, z}); 因为构造函数都是显式的 这开始让我非常恼火。我想不出一个好的理由来禁止这种简单值类型的隐式构造。作者是否盲目地遵循了一些无关的格言,还是他们知道一些我不知道的东西?在最新版本中,他添加了C++11;请参阅自述文件中0.9.5.0的更改 并在g-truc下载 我只是把它放在我的项目中,一切似乎都很好。初始化列表是一个

我已经开始在代码中使用GLM库。看起来不错,但我不能这样做:

void foo (const glm :: vec3 & arg);

foo ({x, y, z});
因为构造函数都是显式的


这开始让我非常恼火。我想不出一个好的理由来禁止这种简单值类型的隐式构造。作者是否盲目地遵循了一些无关的格言,还是他们知道一些我不知道的东西?

在最新版本中,他添加了C++11;请参阅自述文件中0.9.5.0的更改

并在g-truc下载

我只是把它放在我的项目中,一切似乎都很好。初始化列表是一个受欢迎的添加

另外,我同意在::周围加空格会使解析该签名有点困难,至少对我的大脑来说是这样。

那么
foo(glm::vec3(x,y,z))
或者。。。也许这个语法就是为什么他们没有做出另一个非常明确的语法(??)的原因。你为什么问我们而不是库的创建者?