相关疑难解决方法(0)

#pragma曾经vs包括守卫?

我正在研究一个已知只能在Windows上运行并在Visual Studio下编译的代码库(它与excel紧密集成,所以它不会去任何地方).我想知道我是否应该使用传统的包含警卫或#pragma once用于我们的代码.我认为让编译器处理#pragma once会产生更快的编译,并且在复制和粘贴时不易出错.它也稍微不那么难看;)

注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards,但这会在包含的文件和包含文件之间增加紧密耦合.通常它没关系,因为防护应该基于文件名,并且只有在你需要改变包含名称时才会改变.

c++ coding-style

343
推荐指数
10
解决办法
19万
查看次数

#pragma曾经安全包括后卫吗?

我已经读过使用时会有一些编译器优化,#pragma once这会导致更快的编译.我认为这是非标准的,因此可能造成跨平台兼容性问题.

这是非Windows平台(gcc)上大多数现代编译器支持的东西吗?

我想避免平台编译问题,但也想避免后备警卫的额外工作:

#pragma once
#ifndef HEADER_H
#define HEADER_H

...

#endif // HEADER_H
Run Code Online (Sandbox Code Playgroud)

我应该担心吗?我是否应该在这方面进一步消耗精力?

c++ include-guards

283
推荐指数
9
解决办法
15万
查看次数

编写自己的STL容器

是否应该编写一个与任何STL容器一样的新容器?

c++ stl c++-standard-library

114
推荐指数
3
解决办法
5万
查看次数