AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

Perguntas[rust](coding)

Martin Hope
Anunaki
Asked: 2025-04-29 22:01:48 +0800 CST

Como recuperar o tipo de erro original de Box<dyn StdError> após a conversão de anyhow::Error?

  • 6

Estou tentando recuperar o tipo de erro original SqlxErrorapós convertê-lo anyhow::Errore, em seguida, compactá-lo como Box<dyn std::error::Error + Send + Sync + 'static>. No entanto, as informações de tipo parecem ser apagadas e o downcasting falha.

use std::error::Error as StdError;
use std::fmt;

#[derive(Debug)]
struct SqlxError {
    message: String,
}

impl fmt::Display for SqlxError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "SQLx Error: {}", self.message)
    }
}

impl StdError for SqlxError {}

fn main() {
    // Create sqlx::Error
    let sqlx_error = SqlxError {
        message: "Database connection failed".to_string(),
    };

    // Convert to anyhow::Error
    let anyhow_error = anyhow::Error::new(sqlx_error);

    // Convert to Box<dyn StdError>
    let boxed_error: Box<dyn StdError + Send + Sync + 'static> = anyhow_error.into();

    // Now try to recover
    let recovered_error = anyhow::Error::from_boxed(boxed_error);
    // work well! output: SqlxError { message: "Database connection failed"} 
    dbg!(&recovered_error);
    if let Some(sqlx_err) = recovered_error.downcast_ref::<SqlxError>() {
        println!("Successfully downcast to SqlxError: {:?}", sqlx_err);
        println!("Error message: {}", sqlx_err);
    } else {
        println!("Failed to downcast to SqlxError");
        println!("Actual error: {}", recovered_error);
    }
}

Como visto na dbg!saída abaixo, os dados ainda são um SqlxError, mas downcast_ref::<SqlxError>()falham.

[src/main.rs:31:5] &recovered_error = SqlxError {
    message: "Database connection failed",
}

Meu entendimento é que a conversão anyhow::Error into Box<dyn StdError>apaga o wrapper anyhow e qualquer capacidade de recuperar posteriormente o tipo original por meio de anyhow::Error.

Existe alguma maneira de recuperar o tipo de erro original SqlxErrordo objeto de característica em caixa após a conversão de anyhow::Error?

rust
  • 1 respostas
  • 63 Views
Martin Hope
Kaligule
Asked: 2025-04-28 23:25:33 +0800 CST

Detectar colisões em bando

  • 6

Configuração: Um clone de asteroides com bando e aves

Quero criar um clone de asteroides em Rust com o motor de jogo Bevy e o motor de física Avian. Já tenho componentes para Bullets e Astroids. Quando eles são gerados, eles também recebem um Collider.

use bevy::prelude::*;
use avian2d::prelude::*;

#[derive(Component)]
struct Bullet;

#[derive(Component)]
struct Asteroid

fn setup(

) {
    asteroid_handle =  asset_server.load("asteroid.png");
    bullet_handle = asset_server.load("bullet.png");
    commands.spawn(
        (
            Asteroid,
            Sprite::from_image(asteroid_handle),
            Collider::circle(50.),
        )
    );
    commands.spawn(
        (
            Bullet,
            Sprite::from_image(bullet_handle),
            Collider::circle(5.),
        )
    );
}

(É claro que há algum código para que eles se movam, virem, etc., mas isso não é relevante para a questão)

O Problema: Encontrar colisões entre balas e asteroides

As interações entre entidades são onde estou tendo dificuldades: quero detectar quando um asteroide é atingido por uma bala (para que eu possa fazer a bala desaparecer e destruir o asteroide, ainda não sei como). Detectar colisões é muito fácil, posso apenas ouvir os eventos de colisão.

fn print_collisions(mut collision_event_reader: EventReader<Collision>) {
    for Collision(contacts) in collision_event_reader.read() {
        println!(
            "Entities {} and {} are colliding",
            contacts.entity1,
            contacts.entity2,
        );
    }
}

Isso imprime as colisões conforme o esperado. Mas inclui colisões entre a nave e a bala, a nave e os asteroides... Aqui, tudo o que obtenho são duas entidades e nenhuma informação adicional. Como posso testar se elas têm os componentes que desejo?

O que eu quero é obter apenas aquelas colisões entre uma bala e um asteroide.

O que a IA sugeriu

Perguntei à IA e ela sugeriu algo assim:

fn print_collisions(
    mut collision_event_reader: EventReader<Collision>,
    query: Query<(Entity, Option<&Bullet>, Option<&Asteroid>)>,
) {
    for Collision(contacts) in collision_event_reader.read() {
        let (entity1, bullet1, asteroid1) = query.get(contacts.entity1).unwrap_or((contacts.entity1, None, None));
        let (entity2, bullet2, asteroid2) = query.get(contacts.entity2).unwrap_or((contacts.entity2, None, None));

        // Check if one entity is a Bullet and the other is an Asteroid
        if (bullet1.is_some() && asteroid2.is_some()) || (bullet2.is_some() && asteroid1.is_some()) {
            println!(
                "Bullet {} collided with Asteroid {}",
                if bullet1.is_some() { entity1 } else { entity2 },
                if asteroid1.is_some() { entity1 } else { entity2 },
            );
        }
    }
}

Acho que funcionaria, mas me parece muito ineficiente. Já temos as entidades no evento, então não deveria haver necessidade de consultar todas as balas e asteroides novamente para ver se estão na consulta.

O que estou procurando: uma solução simples

Sou iniciante tanto em Rust quanto em Bevy. Tenho experiência em programação (principalmente em Python) e outras engines de jogos (como Godot), e todo o código Bevy que escrevi até agora parece elegante e modular. Isso realmente me impressiona. Por isso, estou procurando uma solução simples e elegante.

rust
  • 1 respostas
  • 62 Views
Martin Hope
kesarling
Asked: 2025-04-28 09:14:20 +0800 CST

Como faço para mover um objeto Sender de uma referência mutável para um Vector de tuplas de Strings e Objetos Sender?

  • 4

Esta não é uma solução para o meu problema. A resposta sugerida substitui os valores por Nones. Eu literalmente preciso que o tamanho do meu vetor seja reduzido.

MRE:

use tokio::sync::mpsc;

#[tokio::main]
async fn main() {

    // Pits the singers against each other...
    // Please do not get confused by the type of the sender used in here.
    // This still will showcase the same problem.
    fn pit(singers: &mut Vec<(String, mpsc::Sender<String>)>) {
        use rand::Rng;
        let mut rng = rand::thread_rng();
        let i1 = rng.gen_range(0..singers.len());
        let i2 = rng.gen_range(0..singers.len());
        // This will add dunsel "singers" to the vector who will get
        // pitted against one another. The actual code makes sure that
        // there are at least 2 singers in queue. What is does not do - 
        // and neither should it - is check if they are dummy objects.
        // Rust did not like me using singers[i1].take().unwrap() and
        // complained about iterators not being implemented for Sender?
        let (dunsel, _) = mpsc::channel::<String>(1);
        let s1 = std::mem::replace(&mut singers[i1], (String::new(), dunsel.clone()));
        let s2 = std::mem::replace(&mut singers[i2], (String::new(), dunsel.clone()));
        // returns s1, s2... not needed for MRE
    }

    let mut v = vec![];
    let (tx, _) = mpsc::channel::<String>(256); // receiver is not needed for MRE
    for name in vec!["name1".to_string(), "name2".to_string(), "name3".to_string()] {
        // In the actual code, the singer clients are sent this tx
        // and they send their transmitter channels via this tx, which
        // is then pushed to the vector. Here, it just accepts `String`s
        // So, tx is of the type mpsc::Sender<mpsc::Sender<String>>!!
        v.push((name.clone(), tx.clone()));
    }
    tokio::spawn(async move {
        let mut v = v;
        pit(&mut v); 
    });
}
rust
  • 1 respostas
  • 52 Views
Martin Hope
SneakyTactician2
Asked: 2025-04-28 06:09:56 +0800 CST

Rust - Como reexportar uma caixa de terceiros

  • 6

Estou tentando reexportar uma caixa de terceiros para que os consumidores da minha biblioteca não precisem adicionar manualmente todas as dependências necessárias para algum código gerado via macro proc.

No entanto, não consigo encontrar o caminho para resolver o compilador, mesmo obtendo conclusões de código para navegar até esse caminho.

Como posso reexportar corretamente caixas de terceiros de uma caixa minha, para que os consumidores das minhas caixas que utilizam minhas macros proc não precisem adicionar manualmente caixas de terceiros para dar suporte ao código gerado?

Abaixo está um exemplo simplificado que deve ser equivalente ao meu problema, embora meu projeto real tenha problemas para resolver esse caminho no código gerado pela minha própria macro proc.

Estrutura do arquivo:

│   Cargo.lock
│   Cargo.toml
│   rust-toolchain.toml
│
├───consumer
│   │   .gitignore
│   │   Cargo.toml
│   │
│   └───src
│           main.rs
│
└───exporter
    │   .gitignore
    │   Cargo.toml
    │
    └───src
            lib.rs

Na minha caixa "consumidor", tentei usar a Debugmacro derive fornecida pela derive_morecaixa.

Main.rs no consumidor:

#[derive(exporter::reexports::derive_more::Debug)]
pub struct Foo {
    x: u64
}


fn main() {
    println!("Hello, world!");
}

Cargo.toml no consumidor:

[package]
name = "consumer"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
exporter = { path = "../exporter" }

lib.rs no exportador:

pub mod reexports {
    pub use derive_more;
}

Cargo.toml no exportador:

[package]
name = "exporter"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
derive_more = { version = "2", features = ["full"] }
rust
  • 1 respostas
  • 52 Views
Martin Hope
Vraj Shah
Asked: 2025-04-26 06:34:12 +0800 CST

Implementar valuable::Valuable em serde_json::Value

  • 5

Como posso implementar o valuable::Valuable no meu tipo de wrapper serde_json::Value.

Todos os outros campos estão funcionando, exceto o array e o objeto.

Tentei envolvê-lo com meu tipo personalizado, mas estava dando erro de compilação dizendo que o valor foi descartado.

Também tentei adicionar tempos de vida aos meus tipos personalizados, mas isso também não funcionou.

Aqui está o que fiz até agora, esperando que haja uma solução ou mesmo uma alternativa.

use serde_json::{Map, Value as Json};

use valuable::{Mappable, Valuable, Value, Visit};

#[derive(Clone)]
pub struct JsonValueable(pub Json);

#[derive(Clone)]
pub struct JsonValueableMap(pub Map<String, Json>);

impl Valuable for JsonValueable {
    fn as_value(&self) -> Value<'_> {
        match self.0 {
            Json::Array(ref array) => array
                .iter()
                .map(|v| JsonValueable(v.clone()))
                .collect::<Vec<JsonValueable>>()
                .as_value(),
            Json::Bool(ref value) => value.as_value(),
            Json::Number(ref num) => {
                if num.is_f64() {
                    Value::F64(num.as_f64().unwrap())
                } else if num.is_i64() {
                    Value::I64(num.as_i64().unwrap())
                } else {
                    unreachable!()
                }
            }
            Json::Null => Value::Unit,
            Json::String(ref s) => s.as_value(),
            Json::Object(ref object) => JsonValueableMap(object.clone()).as_value(),
        }
    }

    fn visit(&self, visit: &mut dyn Visit) {
        match self.0 {
            Json::Array(ref array) => array
                .iter()
                .map(|v| JsonValueable(v.clone()))
                .for_each(|v| v.visit(visit)),
            Json::Bool(ref value) => value.visit(visit),
            Json::Number(ref num) => {
                if num.is_f64() {
                    num.as_f64().unwrap().visit(visit)
                } else if num.is_i64() {
                    num.as_i64().unwrap().visit(visit)
                } else {
                    unreachable!()
                }
            }
            Json::Null => Value::Unit.visit(visit),
            Json::String(ref s) => s.visit(visit),
            Json::Object(ref object) => JsonValueableMap(object.clone()).visit(visit),
        }
    }
}

impl Valuable for JsonValueableMap {
    fn as_value(&self) -> Value<'_> {
        Value::Mappable(self)
    }

    fn visit(&self, visit: &mut dyn Visit) {
        for (k, v) in self.0.iter() {
            visit.visit_entry(k.as_value(), JsonValueable(v.clone()).as_value());
        }
    }
}

impl Mappable for JsonValueableMap {
    fn size_hint(&self) -> (usize, Option<usize>) {
        let len = self.0.len();
        (len, Some(len))
    }
}

Este é o erro que encontro

error[E0515]: cannot return value referencing temporary value
  --> bins/api/src/utils/json_valuable.rs:14:39
   |
14 |                Json::Array(ref array) => array
   |   _______________________________________^
   |  |_______________________________________|
15 | ||                 .iter()
16 | ||                 .map(|v| JsonValueable(v.clone()))
17 | ||                 .collect::<Vec<JsonValueable>>()
   | ||________________________________________________- temporary value created here
18 | |                  .as_value(),
   | |____________________________^ returns a value referencing data owned by the current function

error[E0515]: cannot return value referencing temporary value
  --> bins/api/src/utils/json_valuable.rs:31:41
   |
31 |             Json::Object(ref object) => JsonValueableMap(object.clone()).as_value(),
   |                                         --------------------------------^^^^^^^^^^^
   |                                         |
   |                                         returns a value referencing data owned by the current function
   |                                         temporary value created here

For more information about this error, try `rustc --explain E0515`.
error: could not compile `api` (bin "api") due to 2 previous errors
rust
  • 1 respostas
  • 93 Views
Martin Hope
Jordan_B
Asked: 2025-04-25 00:43:24 +0800 CST

Os genéricos constantes do Rust podem usar limites de características com uma desigualdade (por exemplo, N2 > N1)?

  • 12

Estou trabalhando em um projeto no qual estou construindo um tipo de vetor de bits em Rust e estou explorando se é possível restringir genéricos constantes usando limites de desigualdade.

Meu objetivo é projetar uma API que evite a verificação de limites em tempo de execução usando garantias em tempo de compilação baseadas em genéricos constantes, além de uma variante verificada em tempo de execução. Minha esperança é que essas funções sejam simples o suficiente para que o compilador possa embuti-las, de modo que seja uma abstração verdadeiramente de custo zero.

Aqui está um exemplo de código simplificado que demonstra o que estou tentando fazer. Este código não compila, mas mostra o tipo de restrição que desejo:

/// Idea: A function with multiple generic parameters where a 
/// trait bound is used to establish an ordering between them.
fn add_ordered<const N1: usize, const N2: usize>() -> usize 
where N2 > N1 {
    N1 + N2
}

fn main() {
    let n = add_ordered::<1, 2>();
    println!("{n}");
}

Se eu remover a cláusula where N2 > N1, o código será compilado, mas não manterá o tipo de invariante que estou tentando manter aqui (nesse caso, que N2 é maior que N2).

Minhas perguntas:

  • Existe atualmente uma maneira em Rust de escrever uma restrição genérica const como where N2 > N1?
  • Caso contrário, há alguma solução alternativa ou recurso de linguagem (noturno ou não) que permita algo semelhante?
  • Se realmente não há como fazer isso agora, há algum motivo para que não possa ser feito, além do fato de que simplesmente não foi feito? Isso poderia levar a uma possível RFC?

Pesquisei um pouco, mas não consegui encontrar muita coisa sobre isso. Quaisquer dicas ou explicações serão muito apreciadas. Obrigado!

rust
  • 2 respostas
  • 76 Views
Martin Hope
JFFIGK
Asked: 2025-04-24 22:05:40 +0800 CST

Por que definir um valor em uma chave de registro aberta (em vez de criada) gera "Acesso negado"?

  • 6

Abra uma chave de registro para gravar usando create:

pub fn main() -> Result<(), windows::core::Error> {
    let auto_start = windows_registry::CURRENT_USER.create("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")?;
    auto_start.set_value("Test", &windows_registry::Value::from("content"))?;
    Ok(())
}

Isso funciona como esperado (create apenas abre a chave como ela já existe, e o valor é adicionado).

Entretanto, como a chave já existe, eu gostaria de simplesmente abri-la, por exemplo, como o seguinte:

fn main() -> Result<(), windows::core::Error> {
    let auto_start = windows_registry::CURRENT_USER.open("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")?;
    auto_start.set_value("Test", &windows_registry::Value::from("content"))?;
    Ok(())
}

No entanto, ele falha com um erro de acesso negado, mesmo se eu executar o programa em um terminal iniciado com "Executar como administrador":

Erro: Erro { código: HRESULT(0x80070005), mensagem: "Acesso negado." }

Por que isso acontece?

Não deveria openprecisar no máximo das mesmas permissões que create?

E por que isso nem funciona em um terminal elevado?

Curiosamente, basta abrir sem definir um valor...

rust
  • 1 respostas
  • 63 Views
Martin Hope
Noel Lopes
Asked: 2025-04-24 02:36:25 +0800 CST

Transformar CefStringUserfreeUtf16 em Rust String

  • 5

Estou criando um AppResourceHandlere preciso obter uma URL String. Existe alguma maneira fácil de obter um Stringde um CefStringUserfreeUtf16ou estou implementando a característica errada para isso e existe uma fácil.

impl ImplResourceHandler for AppResourceHandler {
    fn open(
        &self,
        request: Option<&mut impl cef::ImplRequest>,
        handle_request: Option<&mut c_int>,
        _callback: Option<&mut impl cef::ImplCallback>,
    ) -> c_int {
        // ...

        let url_cef = request.get_url();
    
    }
    
    // ...
}
rust
  • 1 respostas
  • 34 Views
Martin Hope
ComputerDruid
Asked: 2025-04-24 01:19:12 +0800 CST

Qual versão do compilador Rust foi usada para construir um determinado binário Linux?

  • 9

Tenho um binário que eu mesmo criei, mas não lembro qual versão rustcusei para criá-lo.

Parece que ele vinculou a biblioteca padrão estaticamente (como é típico), então não consigo usar readelf -desse método para descobrir qual versão da biblioteca padrão está vinculada.

Eu construí o binário usando cargo-auditable, mas o json incorporado parece não mencionar a versão do compilador Rust ou a biblioteca padrão:

❯ rust-audit-info bin/jaq
{"packages":[{"name":"aho-corasick","version":"1.1.3","source":"crates.io","dependencies":[28]},{"name":"autocfg","version":"1.4.0","source":"crates.io","kind":"build"},{"name":"base64","version":"0.22.1","source":"crates.io"},{"name":"bitflags","version":"2.7.0","source":"crates.io"},{"name":"cc","version":"1.2.9","source":"crates.io","kind":"build","dependencies":[35]},{"name":"cfg-if","version":"1.0.0","source":"crates.io"},{"name":"chrono","version":"0.4.39","source":"crates.io","dependencies":[31]},{"name":"codesnake","version":"0.2.1","source":"crates.io"},{"name":"dyn-clone","version":"1.0.17","source":"crates.io"},{"name":"env_logger","version":"0.10.2","source":"crates.io","dependencies":[27]},{"name":"equivalent","version":"1.0.1","source":"crates.io"},{"name":"errno","version":"0.3.10","source":"crates.io","dependencies":[23]},{"name":"fastrand","version":"2.3.0","source":"crates.io"},{"name":"foldhash","version":"0.1.4","source":"crates.io"},{"name":"getrandom","version":"0.2.15","source":"crates.io","dependencies":[5,23]},{"name":"hashbrown","version":"0.15.2","source":"crates.io"},{"name":"hifijson","version":"0.2.2","source":"crates.io"},{"name":"indexmap","version":"2.7.0","source":"crates.io","dependencies":[10,15]},{"name":"is-terminal","version":"0.4.13","source":"crates.io","dependencies":[23]},{"name":"jaq","version":"2.1.1","source":"local","dependencies":[7,9,16,18,20,21,22,27,29,30,36,38,40],"root":true},{"name":"jaq-core","version":"2.1.1","source":"crates.io","dependencies":[8,32,37]},{"name":"jaq-json","version":"1.1.1","source":"crates.io","dependencies":[13,16,17,20,22]},{"name":"jaq-std","version":"2.1.0","source":"crates.io","dependencies":[0,2,6,20,24,27,33,39]},{"name":"libc","version":"0.2.169","source":"crates.io"},{"name":"libm","version":"0.2.11","source":"crates.io"},{"name":"libmimalloc-sys","version":"0.1.39","source":"crates.io","dependencies":[4,23]},{"name":"linux-raw-sys","version":"0.4.15","source":"crates.io"},{"name":"log","version":"0.4.25","source":"crates.io"},{"name":"memchr","version":"2.7.4","source":"crates.io"},{"name":"memmap2","version":"0.9.5","source":"crates.io","dependencies":[23]},{"name":"mimalloc","version":"0.1.43","source":"crates.io","dependencies":[25]},{"name":"num-traits","version":"0.2.19","source":"crates.io","dependencies":[1]},{"name":"once_cell","version":"1.20.2","source":"crates.io"},{"name":"regex-lite","version":"0.1.6","source":"crates.io"},{"name":"rustix","version":"0.38.43","source":"crates.io","dependencies":[3,11,23,26]},{"name":"shlex","version":"1.3.0","source":"crates.io","kind":"build"},{"name":"tempfile","version":"3.15.0","source":"crates.io","dependencies":[5,12,14,32,34]},{"name":"typed-arena","version":"2.0.2","source":"crates.io"},{"name":"unicode-width","version":"0.1.13","source":"crates.io"},{"name":"urlencoding","version":"2.1.3","source":"crates.io"},{"name":"yansi","version":"1.0.1","source":"crates.io"}]}

Ele foi construído com --release, então parece que os símbolos de depuração foram removidos:

❯ rust-gdb -q bin/jaq -ex quit
Reading symbols from bin/jaq...
(No debugging symbols found in bin/jaq)

Como posso descobrir qual versão do rustc (ou, equivalentemente, qual versão da biblioteca padrão) foi usada para construir este binário?

rust
  • 2 respostas
  • 94 Views
Martin Hope
Francesco Cina
Asked: 2025-04-21 04:18:17 +0800 CST

Como criar um Axum Body a partir de um leitor OpenDAL?

  • 7

Preciso construir um Axum Body a partir de um leitor OpenDAL, mas não consigo encontrar nenhuma maneira de fazer isso. Alguém sabe como fazer? Código de exemplo:

use axum::body::Body;
use opendal::{services, Operator};
use http_body_util::StreamBody;

async fn to_body() -> Body {
    let op = Operator::new(services::Fs::default().root("./")).unwrap().finish();
    let reader = op.reader("../Cargo.toml").await.unwrap();
    let stream = reader.into_stream(..).await.unwrap();

    // stream implements futures_core::stream::Stream so I expected this to work, but it doesn't:
    // let body = Body::from_stream(stream);

    // I can build a StreamBody but then I fail to create a Body from it
    let stream_body = StreamBody::new(stream).into();

    // Now I am not able to convert the stream_body to a Body
}
rust
  • 1 respostas
  • 25 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve