小编Mic*_*hop的帖子

如何将C++ lambda传递给需要函数指针和上下文的C-callback?

我正在尝试在使用标准函数指针+上下文范例的C-API中注册回调.这是api的样子:

void register_callback(void(*callback)(void *), void * context);
Run Code Online (Sandbox Code Playgroud)

我真正想做的是能够注册一个C++ lambda作为回调.另外,我希望lambda是一个捕获变量的(即无法转换为直的无状态std::function)

我需要写什么样的适配器代码才能将lambda注册为回调?

c c++ lambda c++11

30
推荐指数
3
解决办法
1万
查看次数

如何使用SceneKit在场景中找到鼠标点?

我在SceneKit中设置了一个场景,并发出了一个命中测试来选择一个项目.但是,我希望能够在场景中沿着平面移动该项目.我继续接收鼠标拖动事件,但不知道如何将这些2D坐标转换为场景中的3D坐标.

我的情况很简单.摄像机位于0,0,50并指向0,0,0.我只想沿z平面拖动我的对象,其z值为0.

命中测试就像魅力一样,但是如何将拖动事件中的鼠标点转换为我拖动的3D对象的场景中的新位置?

opengl 3d mouse-picking scenekit

13
推荐指数
1
解决办法
6681
查看次数

有没有办法伪造同步XHR请求?

我正在使用Emscripten系统将一堆C++代码移植到Javascript.C++代码有许多调用,fopen它是一个同步IO调用.在Emscripten,我们模拟这种使用XHR请求本地资源但是,火狐同步XHR调用内(用responseTypeblobarraybuffer)仅一个网络工作者中支持.转换所有c ++代码以适应异步IO代码似乎非常复杂,所以对于我的第一次尝试,我想看看我是否可以伪造同步XHR请求.

我最初的想法是,主循环可以与web-worker共享一些状态,这可以进行同步io调用并在主循环暂停并等待web-worker完成时更新共享状态.免责声明:我知道这不是典型的Javascript方式,但我正在移植同步代码,而不是从头开始编写新代码(我肯定会使用异步IO).

鉴于Web工作者和主循环之间共享状态的限制,这个想法看起来站不住脚.

还有其他方法吗?

javascript asynchronous xmlhttprequest synchronous web-worker

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

为什么我的NSTableView中的图像逐渐淡出?

首先,有一个NSArrayController("服务器"),其内容是"服务器"对象的数组.

我也有NSTableView一个专栏.该列绑定到Server的"arrangeObjects.status"属性.

我使用自定义NSValueConverter,以使该状态成列的图像dataCell这是一个NSImageCell.

我不明白的是为什么列中显示的图像是正确的,但一直消失.只是为了测试,我在表格视图外面有相同的图像进行比较,它绘制得很好.图像中的颜色不是半透明的.

NSImageCell绘制图像是否褪色?我可以在IB中配置哪些东西将它们完全饱和?

cocoa nstableview nstablecolumn cocoa-bindings nsimagecell

7
推荐指数
1
解决办法
822
查看次数

在Ruby中克隆一个枚举器?

我有一棵树,我正试图穿越.当我遍历它时,我会保留一堆枚举器,其中每个枚举器用于枚举树的子节点.

我希望能够复制这个枚举器堆栈并将其交给另一个对象,这样它就可以从堆栈状态指示的位置开始遍历树.

当我尝试在Enumerator上调用#dup时,出现错误.是否可以复制枚举器?如果没有,我怎么能完成同样的事情?(我已经将一堆整数视为指数,但我担心效率.

这里有一些代码来展示我所看到的......

第一个枚举器启动后,您无法复制它.那是我的情况.

a = [1,2,3].each
 => #<Enumerator: [1, 2, 3]:each> 
a.next
 => 1 
b = a.dup
TypeError: can't copy execution context
    from (irb):3:in `initialize_copy'
    from (irb):3:in `initialize_dup'
    from (irb):3:in `dup'
    from (irb):3
Run Code Online (Sandbox Code Playgroud)

ruby enumerator

6
推荐指数
1
解决办法
391
查看次数

如何声明其值为字符串数组的DefaultValue属性?

我一直在代码生成器中使用DefaultValue属性,该代码生成器从模式中编写C#类定义.

我被困在架构中的属性是一个字符串数组的地方.

我想在我的C#中写这样的东西:

[DefaultValue(typeof(string[]), ["a","b"])]
public string[] Names{get;set;}
Run Code Online (Sandbox Code Playgroud)

但那不会编译.

有什么办法可以成功声明字符串数组的默认值属性吗?

.net c# attributes default-value

5
推荐指数
1
解决办法
4150
查看次数

如何使用`mix test`列出所有测试

是否有我可以结合使用的命令行调用,mix它会在不运行测试的情况下输出所有测试名称?

elixir-mix elixir ex-unit

5
推荐指数
1
解决办法
655
查看次数

在C中,如何使用零值创建一个常量大小的`static`数组,但没有calloc?

我目前在一个函数中有一些代码如下所示:

    static const int kFrameCountSample = 250;
    static float * samples = (float *)calloc(kFrameCountSample, sizeof(float));
Run Code Online (Sandbox Code Playgroud)

我喜欢样本数组只用一次归零calloc().

我也可以编写代码,因此samples在堆栈上分配.

    static const int kFrameCountSample = 250;
    static float samples[kFrameCountSample];
Run Code Online (Sandbox Code Playgroud)

但现在samples没有初始化为零值.如何在分配时初始化它?

c stack allocation initialization

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

Elixir是否有一个包含当前文件名称的变量(ala Ruby的__FILE__)?

如何在Elixir中指定当前正在编译的文件?在Ruby中,我可以使用__FILE__变量.Elixir中是否有相同的名称?

这是我的脚本:

IO.puts “#{__FILE__}”
Run Code Online (Sandbox Code Playgroud)

这是输出:

** (CompileError) ModulesAndFunctions-7.exs:3: undefined function __FILE__/0
    (elixir) expanding macro: Kernel.to_string/1
    ModulesAndFunctions-7.exs:3: (file)
Run Code Online (Sandbox Code Playgroud)

elixir

4
推荐指数
1
解决办法
274
查看次数

如何使DataGridView立即提交编辑?

我有一个主从布局,其中有一部分弹出菜单(“详细信息”)和一个有DataGridView的部分,其中包含行。

当DataGridView中的选定行更改时,弹出菜单状态将更新,而当弹出菜单更改时,DGV的选定行中的状态应更新。

当我更改弹出菜单的值时,除了 DataGridView中的行不会立即更新之外,所有这些工作均有效。我必须选择其他行才能查看我的修改。

我认为这是因为直到选择更改,才提交编辑。

我的问题是:如何使对弹出窗口的更改立即反映在DataGridView中?

我已经尝试过在弹出菜单的SelectionChangeCommitted处理程序中调用EndEdit(),但这没有任何效果。我对允许我创建一个DataGridView的技术感兴趣,该DataGridView的行为就像没有开始的撤消机制一样。理想情况下,该解决方案应该是通用的,并且可以移植到其他项目中。

c# datagridview undo master-detail

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

如何制作带有图像和文本菜单的NSPopupButton?

我有一个应用程序列表,我想制作一个NSPopupButton应用程序名称菜单,每个项目左侧有一个图标.

我已经能够绑定NSPopupButton到我的项目数组,但没有图像的绑定条目.我以为我可以把一个细胞放在那里并将细胞绑定为图像和文本,但我在IB中找不到合适的细胞.

有没有一种干净简单的方法来使用绑定?我必须写一个自定义单元格吗?

cocoa binding nspopupbuttoncell nspopupbutton

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

如何在Objective-C中处理我自己的sharedInstance?

如果我有一个具有自身的sharedInstance(单例模式)的类或另一个类的共享实例,那么当我的程序退出时,如何确保正确释放共享实例?更好的是,你能指点我一些关于这方面的文件吗?

示例类(为清晰起见,删除了所有其他方法):

@interface Foo : NSObject {
}
+ (Foo*)sharedInstance;

@end
Run Code Online (Sandbox Code Playgroud)

.m文件:

static Foo* SharedInstance;

@implementation Foo

+ (Foo*)sharedInstance
{
    if (!SharedInstance)
        SharedInstance = [[Foo alloc] init]; // possible memory leak?

    return SharedInstance;
}
@end
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,什么时候可以释放SharedInstance?

cocoa objective-c

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

为什么我要制作一个全可选的消息协议?

我正在为项目编写Cocoa API,API需要一个委托.我提出的协议将所有方法声明为可选,但为什么我会这样做而不是仅仅记录头文件中的委托方法并将普通id作为参数?

cocoa cocoa-touch delegates protocols

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