- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我了解头部防护是什么,但我从未见过它在更大的项目中是如何使用的。我目前正在编写一个 OpenGL 抽象层,我主要需要包含相同的文件。
所以我第一个天真的方法是做这样的事情:
#ifndef GUARD_H
#define GUARD_H
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <GL/glfw3.h>
#include <glload/gl_core.h>
#include <glload/gll.h>
#endif // GUARD_H
所以我可以做 #include "guard.h"
.但我意识到这不是一个很好的解决方案,因为如果我想添加一个简单的包含怎么办?
是的,我可能会在这个文件中写下我所有的包含,但我也不确定这是否是个好主意。
你会建议我如何构建我的头球后卫?你能给我推荐任何资源吗?
更新一:小例子
test.h
#ifndef TEST_H
#define TEST_H
#include <glm/glm.hpp>
class test{
};
#endif
test1.h
#ifndef TEST1_H
#define TEST1_H
#include <glm/glm.hpp>
class test1{
};
#endif
现在我在我的测试类中加入了 glm。但是如果我想做这样的事情怎么办。
#include "test.h"
#include "test1.h"
int main(){
//...
}
我不包括#include <glm/glm.hpp>
吗?主要是 2 次?
最佳答案
将所有包含在一个文件中不是一个好主意,除非您总是包含所有那些文件。
您应该只在您自己的 header 中包含严格最少的必需 header ,并将其余部分直接包含在您的 .cpp
中。源文件。
您的每个 header 都应该有一个独特的 header 保护,并且不会与任何其他库冲突,因此请非常注意命名方案。
您也可以考虑使用非标准 #pragma once
指令,如果您不编写可移植代码。
你可以看看this paper about the best practice for designing header files
回答您的编辑:
不,你不包括<glm/glm.hpp>
两次,因为它本身就有一个头球后卫。但只有当您确实需要glm.hpp
时才应该包含它。在你的标题中,否则你应该稍后包含它。请注意,您通常可以通过 forward-declaring 避免包含你需要什么,这可以加快编译速度并避免循环依赖,但这是另一个问题。
关于c++ - 大型项目的头部防护装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609352/
我一直致力于将两个遗留数据库中的一些 57k 多条记录精炼和重构为一个与 Django 兼容的实体。现在,当我完成后,我将其转储为固定装置,并尝试将其加载到生产环境中。 我的问题是该进程不久后就被“杀
我有一个包含 3 个模型的应用程序,它们以父子方式相互引用: class A(Model): # ... class B(Model): a = ForeignKey(A) #
我在我的 Django 应用程序中使用夹具,但只有两个应用程序正在加载它们的夹具。 当我使用 --verbosity=2 手动运行 loaddata 时,我可以看到它只在两个应用程序中查找,尽管我在其
我正在寻找一个快速的 BigFloat 单元,它可以处理加法、减法、乘法和除法(对数可以,但不是必需的),并且精度至少为 100 位小数。我试过this单位,但它比标准扩展操作慢大约 1,000 倍。
我有一个 Django 应用程序。我有包含测试数据的 .json 固定文件,以及使用数据确认应用程序正常工作的单元测试。我还使用 South 来迁移我的数据库。 在进行了几次数据库迁移后,我的固定装置
我创建了一些模型,我想为其提供初始数据。问题是模型有好几个,我想整理一下数据。 目前,我有一个包含数据的大 JSON 文件:initial_data.json。我以为我可以使用一些注释,但是 JSON
我的项目中有以下文件树: ... tests/ __init__.py test_abc.py ... 我在 __init__.py 中定义了一个固定装置: @pytest.fixtu
目前,我所有的装置都与它们要用于的 table 同名,因为最近出现了 rails 问题,似乎不可能有一个以“test”这个词开头的装置 有谁知道有一种方法可以使用不同的灯具名称,然后将其映射到正确的表
我正在尝试向使用多个数据库的 rails (v 3.1.3) 应用程序添加测试装置。 该夹具应仅应用于应用程序自己的测试 sqlite 数据库: test: adapter: sqlite3
我正在尝试在Docker容器中运行riofs,但是当我尝试运行riofs时,出现以下错误: fuse: device not found, try 'modprobe fuse' first ERRO
我制作了一个基本包,以方便在 Pyramid 应用程序中使用 SQLAlchemy:pyramid_sqlalchemy 。当您使用此包为应用程序编写测试时,您将需要一些固定装置来提供工作数据库环境。
有没有办法将我现有的数据库行导出为 Doctrine 装置? 最佳答案 不幸的是,目前没有 symfony 1.x 中的导出功能 关于doctrine - Symfony2 将数据库导出到 Doctr
我正在尝试创建一组测试用例来覆盖我的 Django 应用程序。我需要预定义的数据库数据来运行我的一些测试。所以我决定使用固定装置。 我所做的是:1)创建 fixture 文件: oleg$ pytho
我有以下结构: demo/ conftest.py test_1.py test_2.py conftest.py 内容为: import pytest @pytest.fixture()
有人在 Windows 上安装过 Polymer 吗?我刚开始使用 GIT,它说你需要 Bower 和 Node 以及其他一些东西才能让它工作。 最佳答案 我们正在开发一个简单的 ZIP 文件供人们下
Python 和 Django 的新手,尝试导入 .json 文件。 JSON 文件的结构使得每个根级对象中都有一个嵌套对象。 例如,JSON 的结构为: [ { "model": "test
我正在尝试理解提供的示例 here并模拟它适用于 post 方法而不是 get 方法。 当我测试 response.status_code == 200 时,一切正常。如何在不重复代码的情况下测试多个
我正在使用 jasmine fixtures,我想用一个包含 iframe 的 HTML 编写一个测试。 问题是测试在我的 iframe 加载之前执行。 库本身有解决方案吗? 还是我必须实现自己的机制
我有一个基于 Symfony2 + Doctrine2 构建的应用程序,我想为其创建一些测试(使用 phpunit)。 例如,如果我想针对数据库中的记录测试一个唯一验证器,我想创建一个我可以使用的记录
如何在 .yml 中为 has_many 和 belongs_to 变量创建示例数据。 这是将这些文件添加到终端中一个简单的 rails new lab 命令的示例。我真的不知道如何用英语解释这个。但
我是一名优秀的程序员,十分优秀!