我一直在阅读很多关于低延迟金融系统的信息(特别是自着名的企业间谍案以来),从那以后我就一直想到低延迟系统.有一百万个应用程序可以使用这些人正在做的事情,所以我想更多地了解这个主题.问题是我找不到任何关于这个主题的有价值的东西.任何人都可以在低延迟系统上推荐书籍,网站和示例吗?
在qt creator中有一个我非常喜欢的功能,它是Shadow构建.启用"阴影构建"后,将在给定的源目录中生成所有生成的文件(*.moc,Makefile,*.o),因此源目录保持干净.我从Qt Creator中移动为KDevelop,我想弄清楚这个功能是如何工作的,到目前为止,我可以创建生成的二进制文件,文化部文件和目标文件使用的变量额外的目录DESTDIR,OBJECTS_DIR并且MOC_DIR但是我不能创建的makefile在这个指挥中.有任何想法吗?
我觉得,每次我读C或C++程序时,其中一半或更多只是宏.我知道宏可以很酷但是它们很难跟踪,调试等.更不用说大多数编程语言甚至都没有定义像宏这样的东西(尽管Perl6会有类似的东西).
我个人总是找到一种方法来编写我的代码而不使用宏,无论是模板,多重继承等.我甚至觉得我不是一个优秀的程序员,因为所有的专业人员使用宏,我尽量避免使用它们如我所能.
问题是,如果没有宏,是否存在无法解决的问题?宏最终是一个好/坏的做法?我什么时候应该考虑使用宏?
最近我一直在维护一个用VC++ 6.0编写的遗留项目.代码使用了这个编译器的许多独特特性,将它移植到更新的标准编译器已被证明是一项艰巨的任务.
在项目的数千行代码中,有四个汇编程序文件.由于某种原因,我不明白,MASM615和TASM也无法编译它们(它们发送错误),但我有目标文件.但是,当我链接库时,我收到一条消息
警告LNK4033:将对象格式从OMF转换为COFF
该库按预期工作,但我一直想知道这些二进制格式之间的差异是什么,或者我是否应该期望这种转换有些丑陋.
我写了一个算法将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) 有人可以向我解释为什么这不能编译:
#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) 在Windows中,Emacs使用cr-lf进行换行,但我喜欢所有使用Unix行结尾的文件(lf).我找到了一种在会话期间更改它的方法,但我不是一个Emacs大师,可以将解决方案转换为我的.emacs文件中的elisp命令.
任何人都可以帮助我,所以Windows中的Emacs会永久使用lf吗?
我想实现一个填充向量然后返回右值引用的函数.我厌倦了:
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)
总而言之,正确的做法是怎样的?我认为我还没有获得右值参考.
我是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过程中的其余元素似乎没有做任何事情.在你的帮助下,我将非常高兴.
在我所在的公司,我被要求编写一个自动更新功能.即应定期检查新版本是否可用,下载新版本并在下次应用程序启动时静默应用.
我已经有了一些东西,但它更像是一个肮脏的黑客,而不是我感到高兴的东西.所以,我想知道如何设计和实现这样的解决方案.我可怕的黑客就像这样:
有一种机制来检查是否存在新版本(数据库查询或Web服务)
下载完整新版本的完整zip.
检查文件签名.如果一切顺利,请设置注册表值:必须更新为true.
当应用程序重新启动时,如果必须更新值为true,则启动更新程序并存在.
更新将删除应用程序文件夹的内容,解压缩更新并替换旧内容,启动应用程序并退出.
现在,我想改变它,所以它更干净.我打算将更新作为bsdiff文件发送.它被下载了.但问题是,接下来会发生什么?
何时应用更新?谁负责应用补丁?它是程序本身还是第三个程序,正如我所做的那样,负责应用补丁并重新启动应用程序?
c++ ×4
c++11 ×2
algorithm ×1
arm ×1
auto-update ×1
c ×1
coff ×1
delphi ×1
dictionary ×1
emacs ×1
kdevelop ×1
line-endings ×1
low-latency ×1
macros ×1
omf ×1
performance ×1
qmake ×1
qt-creator ×1
rgb ×1
set ×1
trading ×1
txmldocument ×1
visual-c++ ×1
yuv ×1