如果std::string支持移动语义,我应该通过值传递还是通过引用传递(到非内联函数)?那么使用小字符串优化(SSO)的实现呢?
我最近看到两个非常好的和教育性的语言谈话:
Herb Sutter的第一部,介绍了C++ 0x的所有优秀和酷炫功能,为什么C++的未来比以往任何时候都更加明亮,以及M $如何在这场游戏中成为一个好人.该演讲围绕效率展开,如何最大限度地减少堆活动可以提高性能.
这个另一种,安德烈Alexandrescu的,激励一个过渡从C/C++,以他的新的游戏改变d.D的大部分内容似乎都非常有动力和设计.然而,有一件事让我感到惊讶,即D推动垃圾收集,并且所有类都是通过引用创建的.更令人困惑的是,"D编程语言参考手册 "一书特别在关于资源管理的部分中 陈述如下,引用:
垃圾收集消除了C和C++中必需的繁琐,容易出错的内存分配跟踪代码.这不仅意味着更快的开发时间和更低的维护成本,而且最终的程序经常运行得更快!
这与Sutter关于最小化堆活动的不断讨论相冲突.我非常尊重Sutter和Alexandrescou的见解,所以我对这两个关键问题感到有些困惑
不通过引用单独创建类实例会导致很多不必要的堆活动吗?
在哪些情况下我们可以使用垃圾收集而不牺牲运行时性能?
有没有办法告诉Matlab 不要在诸如figure和之类的图形命令上窃取窗口焦点(来自外部编辑器),例如Emacs plot.这会大大提高我的工作效率,因为我经常希望在数据(重新)处理过程中继续进行代码开发.
有没有人在编译模式Emacs中添加对ansi-color的支持?如果是这样,颜色编写程序必须检查哪个属性/属性,以确保其活动终端支持ANSI-escape着色.
我正在消化这个精彩的演示文稿为什么要学习Haskell?作者:Keegan McAllister.他在那里使用了片段
minimum = head . sort
Run Code Online (Sandbox Code Playgroud)
作为Haskell懒惰评估的一个例子,说明在Haskell中minimum有时间复杂度 O(n).但是,我认为这个例子具有学术性质.因此,我要求一个更实际的例子,即大多数中间计算都被抛弃,这并不是显而易见的.
我打算开始为一个跨平台项目"玩"基于任务的并行性.我想使用英特尔线程构建模块.我从Windows和Visual Studio开始.
因为我只是想要原型,我正在考虑只在Windows上"玩",然后有足够的知识在所有兼容平台上使用该库.
我了解到,自VS2010以来,Microsoft提供了一个类似的库,并行处理库,它具有(几乎)与英特尔TBB相同的接口.
一些消息来源建议,包括TBB的团队博客,他们一起构建它,并且它是相同的库.
然而,它并不是真正明确的,因为它经常表明两个库之间存在细微差别.
那么,如果有的话,这些差异是什么?我应该直接与去年稳定该局启动或者是低风险的原型与微软PPL只是玩,跨平台的"真实"的项目上使用该局?
我想从std::unordered_map(直方图)中删除元素(直方图箱),这些元素(直方图)满足作为lambda表达式给出的预测(直方图箱具有零计数),如下所示
std::remove_if(begin(m_map), end(m_map), [](const Bin & bin) { return bin.second == 0; });
Run Code Online (Sandbox Code Playgroud)
但GCC-4.6.1抱怨如下
/usr/include/c++/4.6/bits/stl_pair.h:156:2: error: assignment of read-only member ‘std::pair<const unsigned char, unsigned char>::first’
/usr/include/c++/4.6/bits/stl_pair.h: In member function ‘std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(std::pair<_T1, _T2>&&) [with _T1 = const unsigned char, _T2 = long unsigned int, std::pair<_T1, _T2> = std::pair<const unsigned char, long unsigned int>]’:
/usr/include/c++/4.6/bits/stl_algo.h:1149:13: instantiated from ‘_FIter std::remove_if(_FIter, _FIter, _Predicate) [with _FIter = std::__detail::_Hashtable_iterator<std::pair<const unsigned char, long unsigned int>, false, false>, _Predicate = pnw::histogram<V, C, H>::pack() [with …Run Code Online (Sandbox Code Playgroud) 为什么GHC的Int type不能保证使用精确的32位精度?该文档声称它具有至少 30位的签名精度.它是否与拟合Maybe Int或类似的32位相关?
Linux内核的首字母缩略词PID,PPID,TGID代表什么?
我在strace-pids偶然发现了他们.
当使用cabal install类似于GNU make的-jN标志时,有没有办法并行编译包?
c++ ×4
haskell ×3
ansi-escape ×1
build ×1
cabal ×1
comparison ×1
d ×1
emacs ×1
focus ×1
ghc ×1
heap-memory ×1
linux ×1
linux-kernel ×1
matlab ×1
multicore ×1
performance ×1
pid ×1
plot ×1
ppl ×1
process ×1
remove-if ×1
shell ×1
size ×1
std ×1
string ×1
tbb ×1
threadgroup ×1
types ×1