小编bao*_*aol的帖子

Emacs:恼人的Flymake对话框

我有以下几行 ~/.emacs.d/init.el

(custom-set-variables
  '(flymake-allowed-file-name-masks 
    (quote 
      (
        ("\\.cc\\'" flymake-simple-make-init) 
        ("\\.cpp\\'" flymake-simple-make-init)))))
(add-hook 'find-file-hook 'flymake-find-file-hook)
Run Code Online (Sandbox Code Playgroud)

当我在同一个文件夹中打开一个具有正确Makefile的C++文件时,我会得到即时编译和错误报告(Flymake将检查语法并在代码编辑期间报告错误和警告).

Makefile有一个check-syntax目标:

.PHONY: check-syntax
check-syntax:
 $(CXX) -Wall -Wextra -pedantic -fsyntax-only $(CHK_SOURCES)
Run Code Online (Sandbox Code Playgroud)

问题是,当我打开一个没有相应Makefile的.cc文件时,我得到一个恼人的对话框,警告我关于flymake被禁用.

因此,如果我emacs *.cc在一个包含20个C++文件的文件夹中启动,我会得到20个模态对话框,其中显示的内容类似于[...]找不到构建文件.Flymake将被关闭.

我可以使用一些钩子来禁用该警告吗?你能提供样本elisp代码和解释你如何找到合适的钩子吗?

c++ emacs elisp flymake

14
推荐指数
2
解决办法
2649
查看次数

如何加速一个简单的方法(最好不要改变接口或数据结构)?

我有一些数据结构:

  • all_unordered_m 是一个包含我需要的所有字符串的大向量(所有不同)
  • ordered_m 是一个小向量,包含前一个向量中字符串子集(所有不同)的索引
  • position_m 将对象的索引从第一个向量映射到它们在第二个向量中的位置.

string_after(index, reverse)方法返回ordered_m引用的字符串之后 all_unordered_m[index].

ordered_m 被认为是圆形的,并且根据第二个参数以自然或相反的顺序进行探索.

代码如下所示:

struct ordered_subset {
    // [...]

    std::vector<std::string>& all_unordered_m; // size = n >> 1
    std::vector<size_t> ordered_m;             // size << n
    std::tr1::unordered_map<size_t, size_t> position_m;  

    const std::string&
    string_after(size_t index, bool reverse) const
    {
        size_t pos = position_m.find(index)->second;
        if(reverse)
            pos = (pos == 0 ? orderd_m.size() - 1 : pos - 1);
        else
            pos = (pos == ordered.size() - 1 ? 0 : pos + 1);
        return …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance

8
推荐指数
1
解决办法
180
查看次数

并行代码文档的哪种图表?

我有一些需要记录的并行代码(使用MPI实现).我想要一个描述它的高级策略的流程图.

您使用什么样的图来描述发送,接收,广播,收集,减少和其他操作?

(编辑:我对Linux/LaTeX软件同样感兴趣)

language-agnostic diagram mpi boost-mpi

5
推荐指数
1
解决办法
171
查看次数