草庐IT

c++ - 我如何使用 clang-format 缩进 C++ pragma?

我正在使用vim-autoformat,它使用clang-format作为外部格式化程序。clang-format似乎不会缩进C++#pragma。例如:#include#includeintmain(){#pragmaompparallelforfor(inti=0;i我想把它格式化成:#include#includeintmain(){#pragmaompparallelforfor(inti=0;i我检查了clangformat,但没有找到我可以使用的选项。 最佳答案 已经很晚了,但这是您正在寻找的解决方案。它将编译指示与代码

c++ - Visual Studio for C++ 中的#pragma 标记等效项?

在XCode中是否有与#pragmamark等效的VisualStudio预处理器?这就是我问的原因:这是在Windows上。这是在Mac上。我知道C#中的#region,但在C++中没有类似的功能。2013年3月12日编辑:#pragmaregion为代码添加了可折叠性,但不向VS的方法列表添加部分,这基本上是我正在寻找的。我更喜欢使用函数列表快速跳转到方法,特别是在大型类/文件中,滚动代码森林是禁忌;在这种情况下,“切片”真的很出色。我真的期待VisualStudio有这种功能,看起来很基本。很确定Eclipse也允许您使用Coffee-Bytes插件来做到这一点。

c++ - OpenMP:有条件地使用#pragma

我正在使用OpenMP来提高我的程序循环效率。但最近我发现在小循环上使用这个库会降低性能,而使用普通方式会更好。事实上,我只想在满足一个条件的情况下使用openMP,我的代码是#pragmaompparallelforfor(unsignedi=0;i但是如果size足够小,我想做的是禁用#pragma,即:if(size>OMP_MIN_VALUE)#pragmaompparallelforfor(unsignedi=0;i但是不行,更好的办法是循环写两次但是我不想那样做...if(size>OMP_MIN_VALUE){#pragmaompparallelforfor(unsign

c++ - 如何在 GCC 中使用 pragma 指令禁用所有警告

我正在寻找一种方法来抑制所有可能的警告,这些警告可能是我在Gcc中使用pragma指令获得的。我制作了一些守卫宏来帮助我从警告中消除第3方header,现在它们就像msvc和clang的魅力一样。我仍然缺少使用Gcc诊断编译指示的正确方法来抑制部分中的每个警告。让我举几个例子:在msvc中我们可以这样做:#pragmawarning(push,0)//Codethatproduceswarnings...#pragmawarning(pop)在clang中我们可以这样做:#pragmaclangdiagnosticpush#pragmaclangdiagnosticignored"-W

c++ - 为什么#pragma optimize ("",关闭)

我正在审查一个C++MFC项目。在一些文件的开头有这样一行:#pragmaoptimize("",off)我知道这会关闭所有以下功能的优化。但这样做的动机通常是什么? 最佳答案 我专门使用它来在一组特定代码中获得更好的调试信息,而应用程序的其余部分是在优化的情况下编译的。当由于应用程序的性能要求而无法使用完整的调试版本运行时,这非常有用。 关于c++-为什么#pragmaoptimize("",关闭),我们在StackOverflow上找到一个类似的问题: h

C++ Visual Studio : linking using pragma comment

我遇到了一段使用#pragmacomment(lib,"libraryname")的代码。为什么要使用这种类型的用法,而不是仅从属性菜单链接库?在什么情况下需要这种用法?我在Windows中使用C++Visual Studio 2010.很高兴看到一个需要这种用法的示例。 最佳答案 库编写者可以在公共(public)头文件(.h)中放置#pragmacomment(lib,...)命令。在这种情况下,客户端不需要将此库添加到链接器依赖项列表中。通过在程序中包含一个h文件,客户端会自动链接到所需的库。

c++ - #pragma once 进入头守卫的原因是什么?

刚刚在里面看到了这个#ifndefBOOST_ASIO_HPP#defineBOOST_ASIO_HPP#ifdefined(_MSC_VER)&&(_MSC_VER>=1200)#pragmaonce#endif//defined(_MSC_VER)&&(_MSC_VER>=1200)///....#endif//BOOST_ASIO_HPP忽略_MSC_VER预处理器检查,拥有#pragmaonce有什么好处?在这种情况下?预处理器header保护是否确保在所有情况下和所有平台上,header内容仅是included一次? 最佳答案

c++ - #pragma 有什么用?

谁能帮我理解#pragma?ifndefTARGET_OS_LINUX#pragmaonceendif什么,何时,何地,为什么,一个例子?以上是我正在重构的一些代码...... 最佳答案 #pragma只是编译器特定功能的前缀。在这种情况下,#pragmaonce意味着这个头文件只会在特定的目标文件中包含一次。它消除了对includeguards的需求. 关于c++-#pragma有什么用?,我们在StackOverflow上找到一个类似的问题: https:

C++:#pragma comment(lib, "XXX") 实际上对 "XXX"做了什么?

我的背景是C#,但我必须维护一些遗留(MS)C++。在那个代码库中我偶然发现:#pragmacomment(lib,"OtherLib700.lib")其中700是一些版本控制。另外lib是一个同名的DLL。我最初认为该程序将依赖于DLL,但在将其从系统中删除后,该程序仍然可以工作。不过,还有一个更新版本的DLL,名为OtherLib900...似乎程序“包含”了lib的代码,因此它不再依赖于外部DLL。(或者程序“自动”使用较新的DLL...)哪一个是正确的?有没有办法进一步证实“假设”? 最佳答案 那个pragma用于链接到指定

c++ - 如何使用#pragma message() 使消息指向文件(lineno)?

为了在我的代码中添加“待办事项”项,我想在编译器输出中添加一条消息。我希望它看起来像这样:c:/temp/main.cpp(104):TODO-addcodetoimplementthis为了利用VisualStudio构建输出功能通过双击导航到相应的行。但__LINE__宏似乎扩展为一个int,不允许写入#pragmamessage(__FILE__"("__LINE__"):...")还有其他方法吗? 最佳答案 这是一个允许您单击输出Pane的工具:(那里还有其他一些不错的提示)http://www.highprogrammer