Так что я делаю некоторые базовые вещи OpenGL и для своих математических функций, таких как векторы, матрицы, я использую библиотеку GLM. Я создал файл заголовка, который должен работать с указанной библиотекой, и я заметил, что он компилируется и работает по назначению, даже не включая необходимые файлы заголовков GLM-библиотеки.Сборка программы, хотя я не включаю необходимые заголовки?
Моей упрощенный пример программа:
main.cpp
#include <glm.hpp>
#include <gtc/matrix_transform.hpp>
#include <gtc/type_ptr.hpp>
#include "Header.h"
int main(int argc, char* args[]){
Header::test();
return 0;
}
header.h
#pragma once
#include <iostream>
namespace Header {
void test() {
glm::vec3 vec = glm::vec3(1.0f, 5.0f, 1.0f);
std::cout << vec.x << std::endl;
std::cout << vec.y << std::endl;
}
};
Моего выход:
Как это возможно, что мне не нужно включать GLM-заголовки в моем файле «header.h»?
'# include' просто помещает текст в файл в то же postition как включить заявление, что вы на самом деле включают GLM заголовки перед callingthe функции – user463035818