小编Jos*_*ley的帖子

C++隐式转换为bool

为了使我的枚举更加类型安全,我一直在使用宏生成的重载运算符来禁止将枚举与除了相同类型的枚举之外的任何内容进行比较:

#include <boost/static_assert.hpp>

#define MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, op) \
  template<typename T> \
  inline bool operator op(enumtype lhs, T rhs) \
  { \
    BOOST_STATIC_ASSERT(sizeof(T) == 0); \
    return false; \
  } \
  \
  template<> \
  inline bool operator op(enumtype lhs, enumtype rhs) \
  { \
    return static_cast<int>(lhs) op static_cast<int>(rhs); \
  }

#define MAKE_ENUM_TYPESAFE(enumtype) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, ==) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, !=) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, >) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, <) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, >=) \
  MAKE_ENUM_OPERATOR_TYPESAFE(enumtype, <=)

// Sample usage:
enum ColorType { NO_COLOR, RED, BLUE, GREEN };
MAKE_ENUM_TYPESAFE(ColorType) …
Run Code Online (Sandbox Code Playgroud)

c++ conditional boolean implicit

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

使用模板有哪些缺点?

一些缺点是

  1. 它的语法很复杂
  2. 编译器生成额外的代码

c++ templates generic-programming

10
推荐指数
5
解决办法
2万
查看次数

如何将cdt转换为makefile?

最近我开始做一个C++项目,并使用eclipse的内部构建工具启动它,这似乎是最简单的方法.

但是,因为这个项目需要建立在多个架构上,所以我认为最好在其他架构上采用其他方法来构建它,而不要求PC也有eclipse安装.

有没有办法从托管项目中提取makefile?或者我应该弄清楚如何在日食之外做到这一点?(使用autogen或类似?)

编辑

为了澄清:我目前在eclipse中使用,当查看项目属性时,internal builder作为构建器类型.这使用make,并打开一个复选框,表示它将自动生成makefile.

我仍然找不到makefile ...

c++ eclipse eclipse-cdt

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

Windows 7任务栏进度适用于一个应用程序,但不适用于另一个

我有两个不同的应用程序,包括用C++ Builder 2009编写的本机应用程序,两个MDI,都使用相同的进度条实用程序代码.其中一个正确更新了Windows 7任务栏及其进度.另一个没有.

我发现两个应用程序之间没有任何明显的差异.失败的应用程序中没有报告错误:调用ITaskbarList3::SetProgressValueITaskbarList3::SetProgressState返回S_OK,但Windows 7任务栏中没有任何反应.

让Windows 7任务栏进度条工作有什么陷阱吗?我可能缺少哪些要求?

windows taskbar windows-7 progress-bar

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

在Windows中创建菜单按钮

Microsoft的用户体验交互指南提供了有关何时使用菜单按钮的UI指南:

http://i.msdn.microsoft.com/Aa511453.command51(en-us,MSDN.10).png

如何创建其中一个菜单按钮?我找到了相关信息

  • 如何在Vista及更高版本中创建拆分按钮
  • 如何使用下拉菜单创建工具栏按钮
  • 如何创建常规按钮并手动连接弹出菜单的OnClick事件处理程序

但有没有任何标准的方法来创建一个按钮,而不是在工具栏中,使用小三角形,点击时自动弹出一个菜单?

(我正在使用Delphi/C++ Builder,但欢迎使用其他解决方案.)

windows delphi menu button

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

这个`_time_independent_equals`是什么意思?

龙卷风 .web模块中有一个叫做的函数_time_independent_equals:

def _time_independent_equals(a, b):
    if len(a) != len(b):
        return False
    result = 0
    for x, y in zip(a, b):
        result |= ord(x) ^ ord(y)
    return result == 0
Run Code Online (Sandbox Code Playgroud)

它用于比较安全cookie签名,从而比较名称.

但是关于这个功能的实现,它只是一个复杂的说法a==b吗?

python tornado

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

无论如何有一个valgrind消息"有条件的跳跃或移动取决于未初始化的值"可以是所谓的"误报"

我在这里找到的大多数问题都提供了一段代码,并由指向实际错误的人解答.我的问题是关于一般未初始化值的条件跳转.我可以理解,如果确定这个分配只执行一次并且在程序的生命周期中可能需要,那么在程序结束时不一定要清理一块内存.据我所知,当程序终止时,GType系统会留下很多不同的内存.这些不一致的块可以被视为"误报".但是,"有条件的跳跃或未初始化的价值"是否会成为假阳性?我能想到的唯一一件事就是有人通过读取随机地址(随机地址本身就是棘手的部分)来实现(坏)随机函数.另一个例子可能是硬件映射到存储器的一部分然后被读取,但这主要由驱动程序完成,而不是由普通用户应用程序完成.是否还有其他可能引起误报的例子(最好是C)?

c c++ valgrind

9
推荐指数
2
解决办法
2581
查看次数

Linux中每个进程的程序化资源监视

我想知道是否有一种有效的解决方案来监控Linux中的进程资源消耗(cpu,内存,网络带宽).我想用C++编写一个守护进程来监视某些给定的PID.据我所知,经典的解决方案是定期从/ proc读取信息,但这似乎不是最有效的方式(它涉及许多系统调用).例如,要监视50个进程每秒的内存使用情况,我必须每秒从/ proc打开,读取和关闭50个文件(这意味着150个系统调用).更不用说阅读这些文件时涉及的解析.

另一个问题是网络带宽消耗:对于我想监视的每个进程,这都不容易计算.在我看来,NetHogs采用的解决方案涉及相当高的开销:它使用libpcap捕获并分析每个数据包,然后对于每个数据包,在/ proc中确定和搜索本地端口以找到相应的进程.

您是否知道这些方法是否有更有效的替代方案或任何处理此问题的库?

linux resources bandwidth process monitor

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

.NET中的RabbitMQ订阅者通知

我们现在正在使用MSMQ和WCF激活功能,它使我们不会拉队列来读取消息.它像推送消息到应用程序.

我们正在考虑从MSMQ移植到RabbitMQ,从而通过消息队列完成我们所需的操作.

关于RabbitMQ .net客户端支持从订阅队列接收消息通知,我无能为力?

在带有.net的RabbitMQ中有什么可以像MSMQ那样向用户发送推送通知吗?

或者我们需要不断检查消息的服务运行?

rabbitmq

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

是什么让Gmail API比IMAP更有效?

我正在尝试更好地了解Gmail API.Gmail API的一个明显优势是它可以"在IMAP上实现显着的性能提升".Gmail API和协议的哪些方面允许它比IMAP更有效?

imap gmail-api

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