小编Ale*_*x B的帖子

size_t实际上是指针大小

首先,我要澄清,我现在非常熟悉的定义size_tintptr_t,我不希望他们完成的任务的任何重复.

相反,我想知道以下内容.你知道任何平台,除了 x86/DOS(带有难以忍受的内存模型)演员阵容

void* a = ...;
size_t b = (size_t)a;
Run Code Online (Sandbox Code Playgroud)

实际上丢失了比特或字节?

谢谢!

c

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

解决CouchDB中已删除文档的复制冲突

解决官方文档建议的复制冲突的方法是:

  1. 使用文档的_conflicts字段读取冲突的修订(例如,通过视图)
  2. 获取列出的所有修订的文档
  3. 执行特定于应用程序的合并
  4. 删除不需要的修订

当我想合并已删除的文档时,问题就出现了.它们不会出现在_conflicts现场,而是出现在_deleted_conflicts.如果我仅使用_conflicts字段合并,并且在本地数据库中删除文档并在远程副本中进行编辑,则它将在复制时在本地复活.我的应用程序模型假设在合并时始终优先删除:删除的文档会被删除,无论它与哪些编辑冲突.

所以,乍一看,最简单的方法是检查它_deleted_conflicts是否为空,如果它不是空的,删除文件,对吗?嗯......问题在于,这可能还包含通过解决步骤#4中的编辑冲突而引入的已删除的修订,因此_deleted_conflicts在这种情况下含义不明确.

在CouchDB(如果有的话)中处理删除冲突的规范方法是什么,这些冲突不涉及将文档标记为已删除和在应用程序层过滤等重要内容?

database couchdb

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

使用WinAPI规范化文件路径

可能重复:
确定两个路径是否引用C/C++中相同文件的最佳方法

给定两个具有可能不同的大小写和斜杠('\'vs '/')的文件路径字符串,是否有一种快速的方法(不涉及编写我自己的函数)来规范化到同一形式的两个路径,或者至少测试它们的等效性?

我受限于WinAPI和标准C++.所有文件都是本地的.

c c++ windows winapi path

11
推荐指数
3
解决办法
9671
查看次数

C#中的跨线程事件处理

我正在使用一个框架,该框架在一个单独的线程中运行自己的事件调度程序.框架可能会生成一些事件.

class SomeDataSource {

    public event OnFrameworkEvent;

    void FrameworkCallback() {

        // This function runs on framework's thread.

        if (OnFrameworkEvent != null)
            OnFrameworkEvent(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将这些事件传递给Winforms线程上的Winforms对象.我显然检查InvokeRequired并在必要时将其发送到Winforms线程.

class SomeForm : Form {

    // ...

    public void SomeAction(SomeArgs args) {
        if (InvokeRequired) {
            BeginInvoke(new Action(SomeAction), args);
            return;
        }

        // ...
    }

}
Run Code Online (Sandbox Code Playgroud)

现在事件可能在表单处于关闭状态时传递,这会导致各种问题,因此我从Winforms线程上的框架事件源取消注册表单的事件处理程序,如下所示:

var form = new SomeForm();
var src = new SomeDataSource();

// ...

src.OnFrameworkEvent += form.SomeAction;
form.Closing += (sender, eargs) => src.OnFrameworkEvent -= form.SomeAction;
Run Code Online (Sandbox Code Playgroud)
  1. 现在,这种方法是线程安全的吗?如果表单处于关闭状态,并且外部线程调用BeginInvoke,那么如果表单关闭,调用是否仍会排队等待执行?(这意味着我仍然有机会遇到同样的问题) …

c# multithreading event-handling winforms

11
推荐指数
1
解决办法
3630
查看次数

如何使用boost :: date_time在本地时间和世界时间之间进行转换?

如何使用当前系统时区在本地和UTC时间(特别是从本地到UTC)之间进行转换?我知道,但它需要一个模板参数,它是一个与时区相关的偏移量.boost::date_timeboost::date_time::local_adjustor

失败的独立平台的方式,我将如何在Linux上专门做到这一点?

另外,在转换过程中如何处理不存在的时间点?例如,如果一天因DST而短一小时,并且我尝试从缺失的小时转换时间点,那将是什么样的通用时间?

c++ timezone boost

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

为什么硬盘不支持内存管理?

虚拟内存得到现代硬件的良好支持,但应用程序级内存分配仍然是所有实现的软件,无论是手动堆内存管理a-la C和C++,还是VM级垃圾收集.

除了经典的手动内存管理与垃圾收集辩论之外,为什么没有基于硬件的原语可以帮助在用户空间中构建有效的内存管理和/或垃圾收集方案(可能由操作系统公开或内置于操作系统中,然后是各种VM).

硬件用于加速图形操作,卸载网络堆栈的各个部分,加密算法和音频/视频编解码器经常在硬件中实现,为什么不能构建块用于更高级别的内存管理呢?它似乎无处不在,但我不知道任何硬件辅助实现.

鉴于我缺乏硬件知识,这对我来说有点模糊,但我很想听

  1. 如果有这样的东西(至少在研究阶段),或者
  2. 将会或将不会提供超过传统内存管理的任何好处,或者
  3. 为什么在硬件中构建这样的东西是不可行的?

hardware memory-management

11
推荐指数
2
解决办法
816
查看次数

更高级别的套接字功能

我有一个典型的网络协议,包括典型的消息流(32位长度字段+可变长度的主体),我想从TCP套接字异步读取消息.

然而,C#似乎提供了一个相当低级别的API:我仍然需要分配缓冲区,手动跟踪写入的偏移量和数据长度,并在不同的C读取长度和身体之间保持状态.

在深入编写繁琐的异步有状态代码之前,我是否可以尝试更高级别的功能?(没有第三方图书馆).

c#

11
推荐指数
1
解决办法
374
查看次数

在稀疏表中选择一行第一个非空值

使用下表,

A | B    | C    | ts
--+------+------+------------------
1 | null | null | 2016-06-15 10:00
4 | null | null | 2016-06-15 11:00 
4 |    9 | null | 2016-06-15 12:00
5 |    1 |    7 | 2016-06-15 13:00
Run Code Online (Sandbox Code Playgroud)

如何在N行的运行窗口中选择每列的第一个非空值?例如,查询上表将导致:

A | B | C
--+---+---
1 | 9 | 7
Run Code Online (Sandbox Code Playgroud)

sql postgresql null window-functions

11
推荐指数
2
解决办法
9092
查看次数

如何将日期初始化为NSdate?

我想以例如12/11/2005格式给出mm/dd/yyyy.我12/11/2005可以NSDate直接初始化吗?有帮助吗?

当我声明它时,它会发出警告并崩溃

NSDate *then = [NSDate dateWithNaturalLanguageString:02/11/2009  locale:nil];
Run Code Online (Sandbox Code Playgroud)

iphone

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

为什么不能在python中将打印功能传递给dir()?

打印是内置功能吗?如果是,为什么我不能跑dir(print)dir是一个内置功能,dir(dir)运作良好.所以对我来说这看起来很奇怪dir(print)无法奏效.

python

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