我想自动将包含保护插入到 Visual Studio 2012 中新创建的头文件中。是否有任何预定义的片段用于此目的?
编辑:我知道#pragma once 和编译器的广泛支持。但是我们的编码风格迫使我使用包含警卫。
我想自动将包含保护插入到 Visual Studio 2012 中新创建的头文件中。是否有任何预定义的片段用于此目的?
编辑:我知道#pragma once 和编译器的广泛支持。但是我们的编码风格迫使我使用包含警卫。
在 Visual Studio 2012 中使用组合键
Ctrl+K,Ctrl+S
它允许您使用代码片段包围选定的代码,例如:
#if
, #ifdef
, #ifndef
, if
, class
, do
, enum
, 等等
.. 或指定您自己的:http: //msdn.microsoft.com/en-us/library/ms165394.aspx
由于您正在标记 C++,因此您应该通过内置向导添加类。该向导创建#pragma once 指令。这甚至适用于其他编译器:#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
#pragma once
?
但是不,我不知道有什么会自动#ifndef
为您插入 等。
您可以使用autohotkey 之类的工具。这是一个类似问题的答案。
如果你有 Visual Assist X,你可以删除你的#pragma once
,如果存在的话,选择文本的其余部分,右键单击和Surround with (VA)
=> #ifdef guard in a header
。如果您不喜欢默认设置,您可以将其覆盖到VASSISTX
菜单并选择Tools
=>Edit VA Snippets...