我刚碰到一个我很喜欢的C语言的DEBUGmacros #ifdef DEBUG_BUILD # define DEBUG(x) fprintf(stderr, x) #else # define DEBUG(x) do {} while (0) #endif 我猜测一个C ++模拟会是: – #ifdef DEBUG_BUILD # define DEBUG(x) cerr << x #else # define DEBUG(x) do {} while (0) #endif 第二个代码片段与C中的代码片段类似吗? 你有任何喜欢的C ++debuggingmacros吗? 编辑:“debuggingmacros”我的意思是“在debugging模式下运行程序时可能会派上用场的macros”。
所以,首先我已经阅读了关于这个特定问题的大量的线索,我仍然不知道如何解决这个问题。 基本上,我正在尝试与websocket进行通信,并将收到的消息存储在绑定到listview的可观察集合中。 我知道我正在从套接字得到一个响应正确,但是当它试图将其添加到可观察集合,它给了我以下错误: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)) 我已经阅读了一些关于“派遣”的信息以及其他的一些信息,但是我很困惑! 这是我的代码: public ObservableCollection<string> messageList { get; set; } private void MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args) { string read = ""; try { using (DataReader reader = args.GetDataReader()) { reader.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8; read = reader.ReadString(reader.UnconsumedBufferLength); } […]
我一直在看WPF,但我从来没有真正的工作(除了15分钟,这引发了这个问题)。 我看了这篇文章,但它真的是关于WPF的“Flash”。 那么Windows窗体应用程序和WPF应用程序有什么区别?
可能重复: ?? 空合并运算符 – >合并意味着什么? 在C#中,两个问号在一起意味着什么? 我找不到这个问题,所以我想我会问这个问题。 在C#中,双重问号是做什么的? 例: x = y ?? z;
我有一个vector<data> info其中data定义为: struct data{ string word; int number; }; 我需要根据string的长度对info进行sorting。 有没有一个快速简单的方法来做到这一点?
我通过删除一些空的构造函数来使构造函数更加严格。 我很新的inheritance,并与我得到的错误困惑:基类不包含无参数的构造函数。 我怎样才能使A2从Ainheritance,而没有在A中有一个空的构造函数。另外,为了我个人的理解,为什么A2需要A的空构造函数? Class A{ //No empty constructor for A //Blah blah blah… } Class A2 : A{ //The error appears here }
如果你想把一些常数值和一个类关联起来,这里有两种方法可以达到同样的目的: class Foo { public: static const size_t Life = 42; }; class Bar { public: enum {Life = 42}; }; 从句法和语义上看,它们看起来与客户的观点相同: size_t fooLife = Foo::Life; size_t barLife = Bar::Life; 除了纯粹的风格之外,除了别人之外,还有其他的原因吗?
这是众所周知的selectalgorithm。 请参阅http://en.wikipedia.org/wiki/Selection_algorithm 。 我需要它来find一组3×3×3体素值的中值。 由于体积是由十亿个体素组成,并且algorithm是recursion的,所以最好稍微快一点。 总体而言,可以预期的是价值相对接近。 迄今为止我已经试过的最快速的已知algorithm使用快速sorting分区function。 我想知道是否有更快的。 我已经“发明”了使用两堆的速度提高了20%,但是使用散列的速度更快。 在执行这个之前,我想知道是否已经有一个快速的解决scheme。 我使用浮点数的事实应该是无关紧要的,因为它们可以在反转符号位之后被认为是无符号整数。 订单将被保留。 编辑:基准和源代码转移到一个单独的答案,由戴维兰德曼build议。 请看下面的chmike的答案。 编辑 :到目前为止,最有效的algorithm是由Boojum引用作为快速中值和双边过滤纸,现在是这个问题的答案的链接。 这种方法的第一个聪明的想法是使用基数sorting,其次是结合中间search相邻像素谁共享很多像素。
我有一个接受Expression<Func<T, bool>>作为参数的方法。 我想用它作为List.Find()方法中的谓词,但我似乎无法将其转换为列表需要的谓词。 你知道一个简单的方法来做到这一点? public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { var list = GetList<T>(); var predicate = [what goes here to convert expression?]; return list.Find(predicate); } 更新 结合tvanfosson和280Z28的答案,我现在使用这个: public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { var list = GetList<T>(); return list.Where(expression.Compile()).ToList(); }
我们最近试图将我们的一些Visual Studio项目拆分成库,并且一切似乎都在一个testing项目中编译和构build,其中一个库项目作为依赖项。 但是,试图运行该应用程序给了我们下面的令人讨厌的运行时错误消息: 运行时检查失败#0 – ESP的值在函数调用中未正确保存。 这通常是调用用不同调用约定声明的函数指针的结果。 我们甚至从来没有为我们的函数指定调用约定(__cdecl等),使所有编译器开关保持默认状态。 我检查了一下,项目设置对于在库和testing项目中调用约定是一致的。 更新:我们的一个开发人员将“基本运行时间检查”项目设置从“Both(/ RTC1,equiv。to / RTCsu)”更改为“Default”,运行时间消失,程序运行显然正常。 我完全不信任这个。 这是一个合适的解决scheme,还是一个危险的黑客?