小编Sim*_*mon的帖子

mingw-w64主题:posix vs win32

我正在Windows上安装mingw-w64,有两个选项:win32线程和posix线程.我知道win32线程和pthreads之间的区别是什么,但我不明白这两个选项之间的区别.我怀疑如果我选择posix线程,它将阻止我调用WinTI函数,如CreateThread.

看来这个选项指定某些程序或库将使用哪个线程API,但是通过什么?通过GCC,libstdc ++还是别的什么?

我发现了这个: 在windows的gcc端口中thread_posixs和thread_win32之间的区别是什么?

简而言之,对于这个版本的mingw,threads-posix版本将使用posix API并允许使用std :: thread,而threads-win32将使用win32 API,并禁用std :: thread部分标准.

好的,如果我将选择win32线程,那么std :: thread将不可用,但仍将使用win32线程.但用什么?

windows gcc mingw pthreads

103
推荐指数
3
解决办法
9万
查看次数

如何将字符的迭代器转换为String?

我需要类似.collect()但会生成String而不是chars 的容器,即我需要一个chars()的反转.我在文档中找不到任何合适的内容.当然我自己可以实现这样的功能,但我确信必须有这个问题的标准解决方案.

我正在使用稳定的Rust.

rust

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

用于定义特征别名的宏

根据这个问题和这个回答的问题,不可能简单地定义一个特征别名,如:

trait Alias = Foo + Bar;
Run Code Online (Sandbox Code Playgroud)

解决方法有点难看:

trait Alias : Foo + Bar {}
impl<T: Foo + Bar> Alias for T {}
Run Code Online (Sandbox Code Playgroud)

因此,我想为此定义一个宏.我试过了

macro_rules! trait_alias {
    ( $name : ident, $base : expr ) => {
        trait $name : $base {}
        impl<T: $base> $name for T {}
    };
}

trait Foo {}
trait Bar {}

trait_alias!(Alias, Foo + Bar);
Run Code Online (Sandbox Code Playgroud)

但它失败了,错误:

src\main.rs:5:17: 5:22 error: expected one of `?`, `where`, or `{`, found `Foo + Bar`
src\main.rs:5 …
Run Code Online (Sandbox Code Playgroud)

macros rust

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

如何从箱子根导入所有东西?

要从模块导入符号,您需要枚举它们或使用通配符导入所有内容.也就是说,我可以使用use module::{SomeSymbol, SomeOtherSymbol};或者use module::*;

但是,从顶级模块导入时,crate root,通配符不起作用.我可以使用use {SomeSymbol, SomeOtherSymbol};use ::{SomeSymbol, SomeOtherSymbol}};但既不use *;也不use ::*;工作.

为什么它不起作用以及如何从箱子根导入所有东西?

rust

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

std::set 的替代方案(能够将元素从一个集合移动到另一个集合)

我正在寻找 的替代品std::set。我需要它来支持更多操作std::set

  1. 将元素从一组移动到另一组,无需“创建新的->复制->删除旧的”。

  2. 在某个位置拆分集合以获得两个集合(可以使用 获得类似的行为std::list splice

  3. 设置操作(如并集),无需不必要的复制。std::set_union会将元素从集合 A 和 B 复制到集合 C,如果我只需要集合 C 而不再需要 A 和 B,则效率很低。

是否有任何支持这些操作的实现,或者我需要自己编写一个?

c++ stl set

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

标签 统计

rust ×3

c++ ×1

gcc ×1

macros ×1

mingw ×1

pthreads ×1

set ×1

stl ×1

windows ×1