我刚刚在MacOS上将GNU Emacs从23升级到24,并且一些ELPA安装的软件包停止工作.其中之一是AucTeX.删除它并通过包管理器重新安装它使它再次工作,但我不想手动为每个包执行此操作.我有点困惑,我在互联网上找不到任何相关信息.
对于新版本的Emacs,是否需要重新编译.elc?为什么这不是package.el的功能?
我想知道我的文件系统在哪里找到了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内部发生的事情,但我不确定.
我正在尝试使用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.
我有一个二进制文件,其中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输出中吗?是否有一些命令只检索作为依赖项依赖关系链接的库?
Git推送可以签名
git push --signed
Run Code Online (Sandbox Code Playgroud)
是否可以指定用哪个gpg键来表示推送?该联机帮助页git push没有指定任何内容,只查看配置选项
user.signingkey
Run Code Online (Sandbox Code Playgroud)
指定签名提交的签名密钥.
我正在设计一个数学软件,其算法适用于通用整数类型,如机器整数或GMP整数.对于性能,通常需要使用机器int,但如果有溢出,那么可能想要尝试切换到GMP; 理想情况下在运行时.到目前为止,整个程序都是作为整数类型的模板编写的.随着图书馆的发展,痛苦也在增长:
我可以想到以下解决方案.重构代码以依赖于通过编译时宏定义的固定类型.然后制作库的多个副本,每个整数类型一个,并在可执行文件中将它们链接在一起.缺点似乎是我需要一个库的接口本身.
简短的问题是:在几乎整个程序依赖于某种类型的情况下,什么是设计模式?
我在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.而是删除目录并生成错误消息.重复一遍,它确实删除了目录!到底是怎么回事?
在emacs中一次替换多个字符的最快方法是什么?例如,我想对该区域执行操作,将a替换为1,将b替换为2,...,i替换为9。
我正在寻找一个包含std :: vector的C++类,并存储向量的大小.每次修改向量时,类都会更新此大小,从而导致大量冗余代码(因为size()方法始终可以获得最新大小).这真的更快还是编译器优化了size()的迭代使用?