草庐IT

c++ - 通过 clang-format 格式化 lambda 背后的逻辑是什么?

我在Emacs(24.5.2版)中使用clang-format(3.5版)。下面是一段由clang-format以LLVM风格格式化的简单代码:intmain(){std::cout";std::stringword;while(std::cin>>word){std::cout";}return0;}请注意它是如何对齐lambda的正文和右括号的。这种格式是否有任何逻辑,或者它只是缺乏对lambda的支持?我需要设置clang-format的配置参数以获得更好的格式吗? 最佳答案 std::accumulate(word.cbeg

c++ - 什么是最有效的编译和交互式执行周期的 emacs 工作流程(C++/makefile)

emacs中编译-运行周期的首选做法是什么?以前,我使用M-x编译(映射到F12)和make作为我的编译命令。在Makefile中,我有一个条目可以运行已编译的程序。当我的程序是非交互式的,但编译缓冲区是非交互式的时,这工作得很好。当然我可以打开一个shell并运行可执行文件,但我想尽可能地自动化编译-运行周期,我认为必须有一个标准的做法,我猜我正在执行-from-the-makefile方法很麻烦...C-uF12有效,但我想知道这是否是执行此操作的最佳方法(如果是,我如何绑定(bind)F12等同于C-uM-xcompile而不是M-xcompile?).

c++ - 在带有 C++ 项目的 emacs 中使用 ETAGS/CTAGS

我使用emacs和etags在项目中导航,是否可以通过搜索函数轻松找到头文件。我一直在使用VisualStudio,我可以通过单击goto声明来查看它在emacs中使用etags有类似的方法吗?例如ArchiveDialog::onKeyPress()搜索将在ArchiveDialog的头文件中的onkeypress声明(源文件顶部的#include)。目前,当我使用etags“M-.onKeyPress”时,只会在cpp文件中找到标签,而不是我的头文件。任何帮助将不胜感激谢谢 最佳答案 CEDET的语义应该提供相应的功能.....

c++ - 使用 C++ 字符串函数自动替换 s​​printf 函数

我们有大量使用sprintf和cstrings构造文件名的“演示”代码。我想用C++字符串替换它以允许非常长的文件名,因为它提供了更清晰的语法。所以本质上我们需要像这样转换blockofstreamsome_file;charfilename[100];sprintf(filename,"%s/soln%i.dat",a.c_str(),b);some_file.open(filename);变成类似的东西ofstreamsome_file((a+"soln"+to_string(b)+".dat").c_str());然而,因为它用在很多地方,所以我想使用某种自动转换(即sed表达式

c++ - 如何将 emacs C++ 模式下的代码对齐到 ";"或 ","?

作为一名测试工程师,我经常有一些像下面这样的意大利面条代码:int*constcpe=&n;assert(42==*cpe);int*constcpf=&cn;assert(42==*cpf);int*constcpg=pcn;assert(42==*cpg);int*constcph=cpcn;assert(42==*cph);为了美观,我想将它们按“;”定义的列对齐,如下所示:int*constcpe=&n;assert(42==*cpe);int*constcpf=&cn;assert(42==*cpf);int*constcpg=pcn;assert(42==*cpg);int

c++ - Emacs:C++ 的自动完成

我找到了Emacs的这个自动完成:http://www.emacswiki.org/emacs/AutoComplete,但我找不到它支持的语言。我想将它特别用于C++自动完成。有人有这方面的经验吗? 最佳答案 从User'sGuide可以看出它通过语义内置了对C/C++的支持。自动完成模式开发人员还提供了另外一个名为GCCSense的工具。,他声称这是最智能的C/C++编程工具,当然它与自动完成功能集成得很好,因此您也可以看看它。 关于c++-Emacs:C++的自动完成,我们在Sta

c++ - 在 emacs 中将 .h 设置为 c++ 模式组

这个问题在这里已经有了答案:Howtotellemacstoopen.hfileinC++mode?(6个答案)关闭9年前。我不完全确定这个问题是属于stackoverflow还是super用户(是否有emacs堆栈交换?)。根据meta.stackoverflow帖子,我假设它确实如此。我的emacs默认头文件(.h类)为c模式。我可以轻松地键入M-xc++-mode并恢复突出显示,但因为我用c++编程比用c编程更频繁。我想知道我需要更改什么才能将.h添加到c++组。

c++ - emacs - 如果函数包含在命名空间中 (C++),则 "go to beginning of the function"不起作用

在emacs中,我使用C-M-a和C-M-e来开始/结束C++代码中的函数。但是,如果函数包含在命名空间中(它只是跳转到命名空间封装的开头或结尾),则此功能不再有效。有人对此有好的解决方案吗? 最佳答案 这是一个已知错误。它已在Emacs24.1中得到修复,即releasedthreedaysago.得到它。不幸的是,该修复程序从未向后移植,并且不太可能很快发生。 关于c++-emacs-如果函数包含在命名空间中(C++),则"gotobeginningofthefunction"不起作

Emacs 中的 C++ 函数签名提示?

我们可以让emacs在键入函数名称和参数列表时显示函数签名和重载候选者吗?这将非常有帮助。 最佳答案 这可以通过CEDET(内置)与function-args:一些特点:fa-show显示内联函数参数,允许在重载之间切换。fa-jump跳转到一个过载的候选者(当有很多时)。moo-complete有时会提供更好的补全,并使用helm以提高速度。moo-propose-virtual使用helm即时填写一个重载类中的虚函数签名。moo-propose-override对任何父函数(不仅仅是虚拟函数)都这样做。

c++ - emacs 中 javadoc 样式注释的格式化

我们需要使用javadoc格式的doxygen注释来注释我们的C++代码,我正在emacs中寻找可以在我键入时保持javadoc风格的东西。所以如果我开始写这样的评论:/***Thisfunctiondoesthefollowing:当我点击“回车”时,我希望光标自动缩进并插入一个“*”,这样我就可以继续输入而无需手动格式化。因此,当我点击“返回”时,评论现在应该看起来像这样(无需输入“[TAB]*”):/***Thisfunctiondoesthefollowing:* 最佳答案 在这里找到答案:http://www.frankm