Tag: C#的

.net服务总线build议?

我们需要具有发布/订阅function的分布式架构消息传递系统/服务总线。 有没有人有任何build议,我们可以使用.net应用程序的框架?

“现代C ++”的实例?

我一直在使用更多的“现代”c ++结构,但表面上并不是无处不在。 我正在寻找开源项目来研究现代C ++和STL用法的很好的例子。 像Meyer的“Effective STL”中提到的那样,例如试图避免循环并用更多的函数结构replace它们,使用boost :: bind和boost :: function等。这些对我来说仍然有点不自然,当我必须快速完成某些工作时,我倾向于退回到libc和string.h(当我从寒冷的手中撬出来的时候,可以准备好我的工作)。 不过,我也有积极的经验,发现什么是简化的剧烈变化,因为我已经使用了这些构造,或者能够用几行代码来实现,因为我有正确的操作符和函数。 另外,我最近一直在关注并发性,所以这对我来说变得更加重要。 您能否推荐一些精心编写的开源项目的例子,这些项目大量使用了STL和其他可以学习的现代c ++技术? 我特别感兴趣的应用程序代码,浏览boost源已经很有帮助,但它是必要的非常一般,因为它是库代码。 我对中型到大型项目感兴趣,至less有几万行。 find长达几百行的示例非常简单,但这不是太有用。

使用Eclipse / CDTdebuggingC ++代码时更好地进行variables探索

使用Eclipse和CDT来debuggingC ++代码,variables窗口很麻烦,对于在标准模板库或boost中定义的types(例如shared_ptr)来说并不是很有帮助。 只是一个例子,这可能看起来像一个std :: vector: bar {…} std::_Vector_base<TSample<MyTraits>, std::allocator<TSample<MyTraits> > > _M_impl {…} std::allocator<TSample<MyTraits> > {…} _M_start 0x00007ffff7fb5010 _M_finish 0x00007ffff7fd4410 _M_end_of_storage 0x00007ffff7fd5010 即使这些关于这些types的内部信息可能是有用的,几乎在任何情况下,我都希望在这里有一个更清晰的表示,也就是std :: vector的值列表。 有什么工具,插件或其他修改可以做到这一点? 编辑 以下解决scheme不适用于Linux。 我使用的是Ubuntu 14.04,eclipse,g ++,gdb。 我不能find一个包gdb-python和Linux不使用mingw

剖析C ++编译过程

我倾向于编写相当大的模板化头文件C ++库,我的用户经常抱怨编译时间。 在想到这件事后,我想到了, 我不知道时间在哪里 。 有没有一些简单的方法来分析C ++编译过程与常见的编译器,如g ++,icc和xlC? 例如,是否有可能知道在C ++编译的每个阶段花了多less时间?

最简单但是完整的cmake例子

不知何故,我完全被CMake的工作困惑。 每次我想我越来越接近了解CMake是如何写的,在我读到的下一个例子中就消失了。 所有我想知道的是,我应该如何构build我的项目,以便我的CMake将来需要最less的维护。 例如,我不想在我的src树中添加一个新文件夹时更新我的​​CMakeList.txt,这个文件夹与所有其他src文件夹完全一样。 这就是我想象我的项目结构的方式,但是这只是一个例子。 如果推荐的方式不同,请告诉我,并告诉我如何去做。 myProject src/ module1/ module1.h module1.cpp module2/ […] main.cpp test/ test1.cpp resources/ file.png bin [execute cmake ..] 顺便说一下,我的程序知道资源在哪里是很重要的。 我想知道推荐的资源pipe理方式。 我不想通过“../resources/file.png”来访问我的资源

C#FileStream:写入大文件的最佳缓冲区大小?

假设我正在向磁盘写入几个文件,大小在2MB到5GB之间。 什么是FileStream的明智的缓冲区值? 使用几兆字节的缓冲区大小是合理的,还是应该坚持千字节缓冲区?

GCC如何优化一个在循环内部递增的未使用的variables?

我写了这个简单的C程序: int main() { int i; int count = 0; for(i = 0; i < 2000000000; i++){ count = count + 1; } } 我想看看gcc编译器如何优化这个循环(显然加120亿次应该是“新增20亿次”)。 所以: gcc test.c然后在a.out给出: real 0m7.717s user 0m7.710s sys 0m0.000s $ gcc -O2 test.c然后time on a.out time on执行time on : real 0m0.003s user 0m0.000s sys 0m0.000s 然后我用gcc -S拆卸了两个。 第一个看起来很清楚: .file "test.c" […]

如何使backtrace()/ backtrace_symbols()打印函数名?

Linux特定的backtrace()和backtrace_symbols()允许你产生程序的调用轨迹。 但是,它只打印function地址,而不是我的程序的名称。 我怎样才能让他们打印函数名称呢? 我试着用-g和-ggdb编译程序。 下面的testing用例只是打印这个: 后退———— ./a.out()[0x8048616] ./a.out()[0x8048623] /lib/libc.so.6(__libc_start_main+0xf3)[0x4a937413] ./a.out()[0x8048421] ———————- 我想要前两个项目也显示函数名称, foo和main 码: #include <execinfo.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> static void full_write(int fd, const char *buf, size_t len) { while (len > 0) { ssize_t ret = write(fd, buf, len); if ((ret == -1) && (errno != EINTR)) break; buf […]

在C#generics中有没有合理的方法来“默认”types的参数?

在C ++模板中,可以指定某个types参数是默认的。 即除非明确指定,否则将使用typesT. 这可以在C#中完成或近似? 我正在寻找像这样的东西: public class MyTemplate<T1, T2=string> {} 因此,一个没有明确指定T2的types的实例: MyTemplate<int> t = new MyTemplate<int>(); 将基本上: MyTemplate<int, string> t = new MyTemplate<int, string>(); 最终,我正在寻找一个案例,其中有一个相当广泛的使用模板,但我正在考虑扩大一个额外的types参数。 我想我可以inheritance,但是我很好奇,如果有其他select的话。

使用libstdc ++编译的库和clang ++ -stdlib = libc ++

我在Mac OS X(10.8.2)下使用C ++,最近我想出了使用C ++ 11特性的必要性,这些特性可以通过使用libc ++ stdlib的clang ++编译器获得。 不过,我还需要使用一些遗留库,编译并链接到libstdc ++(来自MacPorts)。 在这样做的时候,我得到了链接错误,因为使用std::string的遗留库的头文件需要根据std::__1::basic_string (即std::string的libc ++实现)而不是std::basic_string实现。 有没有办法在开发中混合两个库(例如,使用一些预处理器标志?)