小编rus*_*hki的帖子

基于缓冲区名称的Vim完成

在Vim中,我经常发现自己处于一种情况,我想在一个单独的缓冲区中完成我正在编辑的文件的文件名.

假设我打开了两个缓冲区:foo.cpp和bar.h. 在foo.cpp中我需要#include"bar.h".我想做这样的事情:

Foo.cpp中

#include "b<complete filename to bar.h>
Run Code Online (Sandbox Code Playgroud)

根据Vim文档,我能够使用CTRL + x CTRL + f来完成文件名,但这似乎依赖于Vim具有与bar.h的父目录相当的CWD.这并不总是可行的.

鉴于我在单独的缓冲区中打开了bar.h,是否可以根据缓冲区名称自动完成?

vim autocomplete

7
推荐指数
1
解决办法
490
查看次数

如何在'scons'中为命令生成器指定COMSTR

scons中的许多内置构建器都有$*COMSTR变量,用于更改其关联的构建器的默认输出.我们可以使用$*COMSTR变量来选择性地使我们的构建过程更加清晰.

我想为命令构建器设置$*COMSTR变量.

target = 'mydb.db3'

populatesql = 'populate.sql'
sources = [populatesql]

command = '@sqlite3 $TARGET < ' + populatesql

built_database = env.Command(target, sources, command)
Run Code Online (Sandbox Code Playgroud)

我发现我可以在命令前加上'@'字符来抑制输出,但我一直无法发现如何在命令构建器中使用$*COMSTR.我在这里错过了一招吗?

谢谢.

python scons

4
推荐指数
1
解决办法
1481
查看次数

std :: vector销毁和意外的内存泄漏

请考虑以下示例:

#include <vector>
class Foo {
    std::vector<int*> v;
public:
    Foo() {
        this->v.push_back(new int(23));
        this->v.push_back(new int(24));
        this->v.push_back(new int(25));
    }

    ~Foo() {
    }
};

int main() {
    Foo f;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当f超出main()中的范围时,会调用f的析构函数,它应该间接释放fv.根据这个,现在应该调用向量v的每个元素的析构函数.

但是,当我在valgrind中运行这个程序时,我发现int*没有被释放.

$ valgrind --leak-check=full ./a.out
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

c++ memory-leaks vector

2
推荐指数
1
解决办法
2934
查看次数

标签 统计

autocomplete ×1

c++ ×1

memory-leaks ×1

python ×1

scons ×1

vector ×1

vim ×1