带有__declspec(align('16'))的形式参数将不对齐

Joz*_*len 17 c++ opengl glm-math

我正在尝试设置着色器制服的功能,但是当我尝试编译它时,我收到此错误:

错误2错误C2719:'value':带__declspec的形式参数(align('16'))将不对齐

这是功能代码:

void Shader::setUniform(std::string name, const glm::mat4 value){
    GLint uniform = glGetUniformLocation(m_program, name.c_str());
    glUniformMatrix4fv(uniform, 1, GL_FALSE, (GLfloat*)&value);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2013.

Dre*_*ann 25

Microsoft关于该错误的文档:

函数参数不允许使用align __declspec修饰符.

请勿参数复制到未对齐的位置.传递对现有对齐数据的恒定引用.

void Shader::setUniform(const std::string &name, const glm::mat4 & value)
//                                               ^^^^^           ^
Run Code Online (Sandbox Code Playgroud)