小编Tho*_*mas的帖子

如何在升级Emacs后重建ELPA包

我刚刚在MacOS上将GNU Emacs从23升级到24,并且一些ELPA安装的软件包停止工作.其中之一是AucTeX.删除它并通过包管理器重新安装它使它再次工作,但我不想手动为每个包执行此操作.我有点困惑,我在互联网上找不到任何相关信息.

对于新版本的Emacs,是否需要重新编译.elc?为什么这不是package.el的功能?

emacs elpa

49
推荐指数
3
解决办法
9340
查看次数

C++标准库的标头在哪里?

我想知道我的文件系统在哪里找到了C++标准库的标题.特别是我正在寻找矢量模板的定义.我在/ usr/include /和各个子目录中搜索.我也试过'locate vector.h',它提出了很多矢量的实现,但不是标准的.我错过了什么?(分布是Gentoo)

背景:我正在分析一个在大多数情况下迭代向量的库,而gprof表明大部分时间花费在

std::vector<int, std::allocator<int> >::_M_insert_aux(
  __gnu_cxx::__normal_iterator<int*, std::vector<
      int, std::allocator<int> > >, int const&)
Run Code Online (Sandbox Code Playgroud)

可能这是std :: vector :: push_back内部发生的事情,但我不确定.

c++ linux stl header-files c++-standard-library

23
推荐指数
2
解决办法
5万
查看次数

为什么std :: async会复制它的const和参数?

我正在尝试使用std :: async来加速程序.假设我有一个功能

T* f (const T& t1, const T& t2, const T& t3)
Run Code Online (Sandbox Code Playgroud)

其中T是一种复制成本昂贵的类型.我有几个独立的f调用不同的参数,我尝试将它们与std :: async并行化,如下所示:(其中m_futures是正确类型的期货的std :: vector).

for (...) {
   m_futures.push_back (
       std::async(
           std::launch::async,
           f,
           a,b,c));
}
Run Code Online (Sandbox Code Playgroud)

我发现上面的代码减慢了程序的执行速度.我使用gdb逐步完成它,当创建未来时,T的复制构造函数被调用三次.这是为什么?参数a,b,c是堆分配的,但编译器可能不知道它?我能以某种方式明确表达吗?

是否始终是std :: async创建参数的副本,即使它们应该由const引用传递?能以某种方式避免这种情况吗?在我天真的想法中,应该只有一个指针传递给函数的不同调用(无论如何只能从内存中读取.)如果重要的话,我在Linux上使用gcc-4.6.3.

c++ gcc asynchronous std c++11

15
推荐指数
1
解决办法
2053
查看次数

ldd是否也显示依赖项的依赖关系?

我有一个二进制文件,其中ldd显示一个意外的依赖和libicuuc(来自"icu").

#ldd A
[...]
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007faaf9722000)
libicuuc.so.49 => /usr/lib64/libicuuc.so.49 (0x00007faaf5689000)
Run Code Online (Sandbox Code Playgroud)

因为在这个系统上libxml动态地依赖于libicuuc,所以ldd最终会找到它,但是它期望libicuuc也出现在A的ldd输出中吗?是否有一些命令只检索作为依赖项依赖关系链接的库?

linux shared-libraries ldd

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

如何选择签署git push的键?

Git推送可以签名

git push --signed
Run Code Online (Sandbox Code Playgroud)

是否可以指定用哪个gpg键来表示推送?该联机帮助页git push没有指定任何内容,只查看配置选项

user.signingkey
Run Code Online (Sandbox Code Playgroud)

指定签名提交的签名密钥.

git signing gnupg git-push

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

如何在数学软件中抽象出整数类型

我正在设计一个数学软件,其算法适用于通用整数类型,如机器整数或GMP整数.对于性能,通常需要使用机器int,但如果有溢出,那么可能想要尝试切换到GMP; 理想情况下在运行时.到目前为止,整个程序都是作为整数类型的模板编写的.随着图书馆的发展,痛苦也在增长:

  • 编译时间和内存消耗已经失控.
  • 编译时的错误消息不太有用.
  • 调试更痛苦.
  • 整个代码都在头文件中.

我可以想到以下解决方案.重构代码以依赖于通过编译时宏定义的固定类型.然后制作库的多个副本,每个整数类型一个,并在可执行文件中将它们链接在一起.缺点似乎是我需要一个库的接口本身.

简短的问题是:在几乎整个程序依赖于某种类型的情况下,什么是设计模式?

c++ design-patterns template-meta-programming

6
推荐指数
1
解决办法
149
查看次数

非零返回代码虽然找到-exec rm工作

我在Linux系统上我想知道以下执行find有什么问题:

mkdir a && touch a/b                      
find . -name a -type d -exec echo '{}' \; 
./a
find . -name a -type d -exec rm -r '{}' \;
find: `./a': No such file or directory
Run Code Online (Sandbox Code Playgroud)

echo的调用仅用于测试目的.我希望最后一个命令完全删除目录'./a'并返回0.而是删除目录并生成错误消息.重复一遍,它确实删除了目录!到底是怎么回事?

linux shell

4
推荐指数
3
解决办法
3032
查看次数

如何在emacs中一次替换多个字符

在emacs中一次替换多个字符的最快方法是什么?例如,我想对该区域执行操作,将a替换为1,将b替换为2,...,i替换为9。

emacs replace elisp

3
推荐指数
1
解决办法
442
查看次数

缓存std :: vector的大小是否更快

我正在寻找一个包含std :: vector的C++类,并存储向量的大小.每次修改向量时,类都会更新此大小,从而导致大量冗余代码(因为size()方法始终可以获得最新大小).这真的更快还是编译器优化了size()的迭代使用?

c++ optimization caching hoisting

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