首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio stl数字实现中的双重标题保护

Visual Studio stl数字实现中的双重标题保护
EN

Stack Overflow用户
提问于 2020-05-29 18:54:50
回答 1查看 38关注 0票数 0

在Visual Studio12.0附带的stl实现中,numeric头如下所示

代码语言:javascript
复制
#pragma once
#ifndef _NUMERIC_
#define _NUMERIC_

// shortened for the sake of readibility
. 
.
.


#endif /* _NUMERIC_ */

我知道#pragma once不是standard conform

然而,为什么他们要实现双头后卫呢?

EN

回答 1

Stack Overflow用户

发布于 2020-06-01 16:09:25

#pragma once:同一文件不会多次包含include guard idiom:使用预处理器宏定义来防止文件内容的多次包含。

根据Doc的说法

在同一个文件中同时使用include guard惯用法和#pragma once没有什么好处。如果在标准格式的习惯用法之前或之后没有出现非注释代码或预处理器指令,则编译器会识别包含保护习惯用法,并以与#pragma once指令相同的方式实现多包含优化

我建议你可以参考这个链接:https://stackoverflow.com/a/13339535/11872808

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62084298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档