Этот код:Странное поведение с getIntegerv() и Std :: соиЬ
#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main(void)
{
GLint version;
glGetIntegerv(GL_MAJOR_VERSION, &version);
std::cout << version << std::endl;
//(Un)comment the next line
//std::cout << "" << version << std::endl;
glfwTerminate();
return 0;
}
выходы:
32766
или
0
0
, когда линия комментируется или раскомментирована, соответственно, ,
Я знаю, что перед использованием некоторых методов вы должны инициализировать glfw и glew библиотеки (с инициализацией glfw это все еще происходит), но ... Как возможно, что предыдущая строка меняет свое поведение, комментируя или раскомментируя следующую строку? Машина идет в прошлое и выполняет предыдущую строку? omg
PS: Я знаю, что такое «неопределенное поведение», но это не значит, что вы можете нарушать законы физики, путешествовать в прошлое и изменять поведение некоторых методов.
Повторите за мной: неопределенное поведение - * undefined *! –