Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在VisualStudio中插入include guard的快速方法_C++_Visual Studio_Visual Studio 2012 - Fatal编程技术网

C++ 在VisualStudio中插入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宏,如下所

我想在Visual Studio 2012中自动插入新创建的头文件。是否有用于此目的的预定义代码段

编辑:我知道#pragma once及其编译器的广泛支持。但是我们的编码风格迫使我使用include-guard。

\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:请注意,问题中的部分是在这个答案之后添加的。。。