我想将切片的末尾写到同一切片的顶部.
let mut foo = [1, 2, 3, 4, 5];
foo[..2].copy_from_slice(&[4..]); // error: multiple references to same data (mut and not)
assert!(foo, [4, 5, 3, 4, 5]);
Run Code Online (Sandbox Code Playgroud)
我已经看过如何操作2个可变片的Rust数组
我希望尽可能提高性能(例如,使用foo.as_ptr()).
我有一个使用这个函数原型的C库,我想在C++中使用它
int mlx_key_hook(void *win_ptr, int (*funct_ptr)(), void *param);
Run Code Online (Sandbox Code Playgroud)
但实际上所要求的功能是
int funct_ptr(int keycode, void *param);
Run Code Online (Sandbox Code Playgroud)
事实上我有这个问题:为什么在params中放空?
然后,我问你如何用适当的C++ funct_ptr调用这个函数?
还是我在更改了funct_ptr原型后重新编译了这个库?
这不起作用:
mlx_key_hook(win_ptr, [](int keycode, void *param) -> int {
return 0;
}, NULL);
Run Code Online (Sandbox Code Playgroud)
这项工作,但这不是我想要的:
mlx_key_hook(win_ptr, []() -> int {
return 0;
}, NULL);
Run Code Online (Sandbox Code Playgroud)