小编Sam*_*yon的帖子

低延迟编程

我一直在阅读很多关于低延迟金融系统的信息(特别是自着名的企业间谍案以来),从那以后我就一直想到低延迟系统.有一百万个应用程序可以使用这些人正在做的事情,所以我想更多地了解这个主题.问题是我找不到任何关于这个主题的有价值的东西.任何人都可以在低延迟系统上推荐书籍,网站和示例吗?

language-agnostic trading low-latency

44
推荐指数
6
解决办法
3万
查看次数

在qmake中手动配置阴影构建

在qt creator中有一个我非常喜欢的功能,它是Shadow构建.启用"阴影构建"后,将在给定的源目录中生成所有生成的文件(*.moc,Makefile,*.o),因此源目录保持干净.我从Qt Creator中移动为KDevelop,我想弄清楚这个功能是如何工作的,到目前为止,我可以创建生成的二进制文件,文化部文件和目标文件使用的变量额外的目录DESTDIR,OBJECTS_DIR并且MOC_DIR但是我不能创建的makefile在这个指挥中.有任何想法吗?

qmake kdevelop qt-creator

17
推荐指数
1
解决办法
8553
查看次数

过度依赖宏

我觉得,每次我读C或C++程序时,其中一半或更多只是宏.我知道宏可以很酷但是它们很难跟踪,调试等.更不用说大多数编程语言甚至都没有定义像宏这样的东西(尽管Perl6会有类似的东西).

我个人总是找到一种方法来编写我的代码而不使用宏,无论是模板,多重继承等.我甚至觉得我不是一个优秀的程序员,因为所有的专业人员使用宏,我尽量避免使用它们如我所能.

问题是,如果没有宏,是否存在无法解决的问题?宏最终是一个好/坏的做法?我什么时候应该考虑使用宏?

c c++ macros

16
推荐指数
3
解决办法
3337
查看次数

OMF和COFF格式有什么区别?

最近我一直在维护一个用VC++ 6.0编写的遗留项目.代码使用了这个编译器的许多独特特性,将它移植到更新的标准编译器已被证明是一项艰巨的任务.

在项目的数千行代码中,有四个汇编程序文件.由于某种原因,我不明白,MASM615和TASM也无法编译它们(它们发送错误),但我有目标文件.但是,当我链接库时,我收到一条消息

警告LNK4033:将对象格式从OMF转换为COFF

该库按预期工作,但我一直想知道这些二进制格式之间的差异是什么,或者我是否应该期望这种转​​换有些丑陋.

arm coff visual-c++ omf

12
推荐指数
1
解决办法
9070
查看次数

rgb到yuv420算法效率

我写了一个算法将RGB图像转换为YUV420.我花了很长时间试图让它变得更快,但我还没有找到任何其他方法来提高效率,所以现在我转向你,这样你就可以告诉我这是否和我一样好,或者是否有另一种效率更高这样做的方法(算法在C++中,但C和汇编程序也是选项)

namespace {
// lookup tables
int lookup_m_94[] = {
      0,    -94,   -188,   -282,   -376,   -470,   -564,   -658,
    -752,   -846,   -940,  -1034,  -1128,  -1222,  -1316,  -1410,
  -1504,  -1598,  -1692,  -1786,  -1880,  -1974,  -2068,  -2162,
  -2256,  -2350,  -2444,  -2538,  -2632,  -2726,  -2820,  -2914,
  -3008,  -3102,  -3196,  -3290,  -3384,  -3478,  -3572,  -3666,
  -3760,  -3854,  -3948,  -4042,  -4136,  -4230,  -4324,  -4418,
  -4512,  -4606,  -4700,  -4794,  -4888,  -4982,  -5076,  -5170,
  -5264,  -5358,  -5452,  -5546,  -5640,  -5734,  -5828,  -5922,
  -6016,  -6110,  -6204,  -6298,  -6392,  -6486, …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm rgb performance yuv

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

使用std :: move和std :: make_move_iterator进行C++ 11编译错误

有人可以向我解释为什么这不能编译:

#include <iterator>
#include <iostream>
#include <unordered_set>
#include <utility>
#include <set>

template<typename T>
std::unordered_set<T> FailMove(std::set<T> &&set) {
  std::unordered_set<T> response;
  response.insert(std::make_move_iterator(set.begin()),
                  std::make_move_iterator(set.end()));
  return response;
}

int main(int argc, char **argv) {
  std::set<int> set{1, 3, 5, 7};

  auto res = FailMove(std::move(set));
  std::cout << res.size() << '\n';

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

clang输出(命令:) clang++ -std=c++11 -otest test.cpp是:

In file included from test.cpp:1:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:948:14: error: cannot
      cast from lvalue of type 'const value_type' (aka 'const int') to rvalue reference type 'reference' (aka 'int &&'); types …
Run Code Online (Sandbox Code Playgroud)

c++ dictionary set move-semantics c++11

10
推荐指数
1
解决办法
1327
查看次数

emacs更改默认行结尾

在Windows中,Emacs使用cr-lf进行换行,但我喜欢所有使用Unix行结尾的文件(lf).我找到了一种在会话期间更改它的方法,但我不是一个Emacs大师,可以将解决方案转换为我的.emacs文件中的elisp命令.

任何人都可以帮助我,所以Windows中的Emacs会永久使用lf吗?

emacs line-endings

9
推荐指数
1
解决办法
5968
查看次数

在c ++ 11中使用rvalue引用

我想实现一个填充向量然后返回右值引用的函数.我厌倦了:

std::vector<int> &&fill_list() {
  std::vector<int> res;
  ... do something to fill res ...
  return res;
}

int main(int argc, char **argv) {
  std::vector<int> myvec = fill_list();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我收到以下错误:

error: invalid initialization of reference of type 'std::vector<int>&&' from expression of type 'std::vector<int>'
Run Code Online (Sandbox Code Playgroud)

总而言之,正确的做法是怎样的?我认为我还没有获得右值参考.

c++ rvalue-reference c++11

9
推荐指数
1
解决办法
9156
查看次数

使用TXMLDocument创建XML文档的问题

我是delphi的新手,现在我必须阅读创建一个xml.我的代码如下:

function foo.createXMLDocument(): TXMLDocument;
var
  res: TXMLDocument;
  rootNode: IXMLNode;
  sl : TStringList;
begin
  res := TXMLDocument.Create(nil);
  res.Active := true;
  rootNode := res.AddChild('label');
  // create string for debug purposes
  sl := TStringList.Create;
  sl.Assign(res.XML);// sl is empty after this assignment
  //add more elements
  generateDOM(rootNode);

  Result := res;
end;
Run Code Online (Sandbox Code Playgroud)

问题是,子节点数增加但res.XML为空.更不用说generateDOM过程中的其余元素似乎没有做任何事情.在你的帮助下,我将非常高兴.

delphi txmldocument

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

自动更新Google Chrome工作流程

在我所在的公司,我被要求编写一个自动更新功能.即应定期检查新版本是否可用,下载新版本并在下次应用程序启动时静默应用.

我已经有了一些东西,但它更像是一个肮脏的黑客,而不是我感到高兴的东西.所以,我想知道如何设计和实现这样的解决方案.我可怕的黑客就像这样:

  1. 有一种机制来检查是否存在新版本(数据库查询或Web服务)

  2. 下载完整新版本的完整zip.

  3. 检查文件签名.如果一切顺利,请设置注册表值:必须更新为true.

  4. 当应用程序重新启动时,如果必须更新值为true,则启动更新程序并存在.

  5. 更新将删除应用程序文件夹的内容,解压缩更新并替换旧内容,启动应用程序并退出.

现在,我想改变它,所以它更干净.我打算将更新作为bsdiff文件发送.它被下载了.但问题是,接下来会发生什么?

何时应用更新?谁负责应用补丁?它是程序本身还是第三个程序,正如我所做的那样,负责应用补丁并重新启动应用程序?

auto-update

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