C++ 在VisualStudio中插入include guard的快速方法
我想在Visual Studio 2012中自动插入新创建的头文件。是否有用于此目的的预定义代码段 编辑:我知道#pragma once及其编译器的广泛支持。但是我们的编码风格迫使我使用include-guard。C++ 在VisualStudio中插入include guard的快速方法,c++,visual-studio,visual-studio-2012,C++,Visual Studio,Visual Studio 2012,我想在Visual Studio 2012中自动插入新创建的头文件。是否有用于此目的的预定义代码段 编辑:我知道#pragma once及其编译器的广泛支持。但是我们的编码风格迫使我使用include-guard。\35; pragma once 但是,我不知道自动插入 > IFNDEF < /C>等的任何东西。< P>因为你在标记C++,你应该通过内置向导添加类。向导将创建#pragma once指令。这甚至适用于其他编译器:因此不会破坏平台形式的交叉兼容性 但是,您可以创建一个VS宏,如下所
\35; pragma once
<>但是,我不知道自动插入<代码> > IFNDEF < /C>等的任何东西。< P>因为你在标记C++,你应该通过内置向导添加类。向导将创建#pragma once指令。这甚至适用于其他编译器:因此不会破坏平台形式的交叉兼容性 但是,您可以创建一个VS宏,如下所示:
Option Strict Off
Option Explicit Off
Imports System
Public Module HeaderGuard
Sub InsertHeaderGuard()
Dim filename As String = DTE.ActiveDocument.Name
filename = filename.ToUpper().Replace("."c, "_"c)
DTE.ActiveDocument.Selection.Text = "#ifndef " + filename
DTE.ActiveDocument.Selection.NewLine()
DTE.ActiveDocument.Selection.Text = "#define " + filename
DTE.ActiveDocument.Selection.NewLine(2)
DTE.ActiveDocument.Selection.Text = "#endif /* " + filename + " */"
DTE.ActiveDocument.Selection.NewLine()
End Sub
End Module
你可以使用像这样的工具。下面是一个模拟问题的答案。在visual studio 2012中使用组合键
Ctrl+K,Ctrl+S
它允许您使用以下代码段围绕所选代码:
如果
,如果定义
,如果定义
,如果
,类
,执行
,枚举
,等等
。。或指定您自己的:
如果您有视觉辅助X,您可以删除一次您的
#pragma
如果存在,请选择文本的其余部分,右键单击并在标题中用(VA)=>\ifdef-guard环绕。如果您不喜欢默认设置,您可以在进入VASSISTX
菜单并选择Tools
=>Edit VA Snippets…
创建一个相当简单的VS宏-请参阅下面的我的答案。然后你可以给它分配一个热键。除非你使用的是Visual Studio 2012(或更高版本),那里的宏支持已经被删除。嗯,这不太好。但它可能会被认为是一个附加组件:(还没有尝试过)@RolfKristensen:他们真的取消了宏支持吗?这是多么愚蠢啊!我在VS2005中创建了大量宏,这些宏可以使用#ifdef样式的保护设置新文件,创建带有注释的类和函数。与宏相比,创建附加组件的工作量太大了。这是否也意味着记录临时宏也消失了?VS曾经非常好,但每次发布都会变得更糟。目前正在移动到emacs。看起来,录制宏也消失了。我也不知道。目前,我正在查看Visualstudiogallery()是否有一个扩展可以提供帮助。啊,我错过了VS 2012部分-我在VS2010中尝试了它,它告诉我“…绑定到命令环绕,但当前不可用”。。。看来他们把它加在了中间!感谢您的快速回答,Pragma once是默认值,与问题无关。问题中已经提到了。@saurabheights:请注意,问题中的部分是在这个答案之后添加的。。。