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 / 问题

All perguntas(coding)

Martin Hope
Glitch
Asked: 2024-06-10 20:03:26 +0800 CST

__attribute__ ((packed)) pode criar uma estrutura de 1 bit quando o único membro é um campo de bits?

  • 9

Eu estava lendo a documentação do GNU/GCC e parei na descrição do __attribute__ ((packed)). Diz:

embalado

O atributo compactado especifica que um campo de variável ou estrutura deve ter o menor alinhamento possível – um byte para uma variável e um bit para um campo, a menos que você especifique um valor maior com o atributo alinhado.

Aqui está uma estrutura na qual o campo x é compactado, de modo que segue imediatamente a:

struct foo
{
    char a;
    int x[2] __attribute__ ((packed));
};

Gostaria de saber como esse atributo funciona exatamente e se esse código:

struct bar
{
    char a:1 __attribute__ ((packed));
};

criaria uma estrutura de 1 bit em vez de 1 byte.

c++
  • 1 respostas
  • 98 Views
Martin Hope
Mr_Khattak
Asked: 2024-06-10 18:21:21 +0800 CST

O aplicativo Flutter mostra uma tela em branco após a integração do Firebase

  • 9

o aplicativo ainda mostra apenas uma tela em branco. Aqui está o código principal do meu aplicativo:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Firebase Integration')),
        body: Center(child: Text('Hello, Firebase!')),
      ),
    );
  }
}

Qualquer ajuda ou sugestão seria muito apreciada!

  • 3 respostas
  • 43 Views
Martin Hope
lucidbrot
Asked: 2024-06-10 16:15:07 +0800 CST

Como a palavra-chave virtual interrompe a compilação?

  • 9

Em uma classe sem herança, esperaria que a virtualpalavra-chave não tivesse nenhum efeito perceptível. No entanto, no exemplo de código a seguir, adicioná-lo interrompe a compilação. Eu gostaria de entender o mecanismo por trás disso. Por que a virtualpalavra-chave interrompe a compilação?

Compila bem sem a palavra-chave virtual.

#define USE_VIRTUAL 1
// compile with: cl /W4 /EHsc main.cpp /link /out:main.exe
#include<iostream>
#include<memory>

struct Dummy {int i = 3;};
class Uncopyable {
    public:
        // Implicitly delete the copy constructor by having
        // a non-copyable member.
        std::unique_ptr<Dummy> m_innerPtr;

        // A virtual destructor to allow correct inheritance.
        // I first thought that this implicitly deletes the 
        // copy-assignment and copy-constructor, 
        // but it does not. It does, however, implicitly
        // delete the move constructor and assignment.
        virtual ~Uncopyable() = default;

        // accessible constructor
        Uncopyable() = default;
        Uncopyable(std::unique_ptr<Dummy> dummy):m_innerPtr(std::move(dummy)){};

};


template <typename MaybeCopyable>
class Bamboozle {
    public: 
    void foo(std::shared_ptr<MaybeCopyable> obj) {
        std::cout << "Reached Bamboozle::foo(shared_ptr)" << std::endl;
    }

    // overload that takes an object by value
#if USE_VIRTUAL
    virtual
#endif
    void foo(MaybeCopyable obj){
        std::cout << "Reached Bamboozle::foo(Uncopyable)" << std::endl;
        foo(std::make_shared<Uncopyable>(std::move(obj)));
    }
};



int main(int argc, char** argv){
    // construct param objects
    std::shared_ptr<Uncopyable> uncSharedPtr = std::make_shared<Uncopyable>();

    // prints Bamboozle::foo(shared_ptr)
    Bamboozle<Uncopyable> bamboozleObj;
    bamboozleObj.foo(uncSharedPtr);
    return 0;
};

Veja esta questão (fechada por ser muito detalhada) para obter mais contexto se quiser ler sobre outros aspectos que acho que estão envolvidos nisso. Especificamente modelos e construtores de movimentos. O modelo de classe é necessário para reproduzir esse comportamento.

A mensagem de erro é:

cl /W4 /EHsc main.cpp /link /out:main.exe
Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

main.cpp
main.cpp(46): warning C4100: 'argv': unreferenced formal parameter
main.cpp(46): warning C4100: 'argc': unreferenced formal parameter
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xutility(255): error C2280: 'Uncopyable::Uncopyable(const Uncopyable &)': attempting to reference a deleted function
main.cpp(24): note: compiler has generated 'Uncopyable::Uncopyable' here
main.cpp(24): note: 'Uncopyable::Uncopyable(const Uncopyable &)': function was implicitly deleted because a data member invokes a deleted or inaccessible function 'std::unique_ptr<Dummy,std::default_delete<Dummy>>::unique_ptr(const std::unique_ptr<Dummy,std::default_delete<Dummy>> &)'
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\memory(3319): note: 'std::unique_ptr<Dummy,std::default_delete<Dummy>>::unique_ptr(const std::unique_ptr<Dummy,std::default_delete<Dummy>> &)': function was explicitly deleted
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xutility(255): note: the template instantiation context (the oldest one first) is
main.cpp(51): note: see reference to class template instantiation 'Bamboozle<Uncopyable>' being compiled
main.cpp(38): note: while compiling class template member function 'void Bamboozle<Uncopyable>::foo(MaybeCopyable)'
        with
        [
            MaybeCopyable=Uncopyable
        ]
main.cpp(40): note: see reference to function template instantiation 'std::shared_ptr<Uncopyable> std::make_shared<Uncopyable,Uncopyable>(Uncopyable &&)' being compiled
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\memory(2769): note: see reference to function template instantiation 'std::_Ref_count_obj2<_Ty>::_Ref_count_obj2<_Ty>(_Ty &&)' being compiled
        with
        [
            _Ty=Uncopyable
        ]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\memory(2094): note: see reference to function template instantiation 'void std::_Construct_in_place<_Ty,_Ty>(_Ty &,_Ty &&) noexcept(false)' being compiled
        with
        [
            _Ty=Uncopyable
        ]
c++
  • 1 respostas
  • 145 Views
Martin Hope
epatmalnieks
Asked: 2024-06-05 01:12:00 +0800 CST

Encolher div verticalmente quando houver menos conteúdo

  • 9

Quero que o div azul diminua e permita que o div verde ocupe mais espaço quando não houver muito conteúdo no div azul e vice-versa. No entanto, nenhum dos divs poderá ultrapassar 50% do contêiner se houver muito conteúdo em ambos os divs.

.container {
  display: flex;
  flex-direction: column;
  height: 300px;
}

.topDiv {
  background-color: blue;
  color: white;
  flex: 1;
  overflow: auto;
}

.bottomDiv {
  background-color: green;
  color: white;
  flex: 1;
  overflow: auto;
}
<div class="container">
    <div class="topDiv">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
    </div>
    <div class="bottomDiv">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus eius quia a iure, odit corporis, iusto molestiae delectus dolores possimus accusantium voluptatum, nam. Unde atque veritatis quo at, in eligendi.</p>
    </div>
  </div>

html
  • 1 respostas
  • 49 Views
Martin Hope
yg-i
Asked: 2024-06-02 06:34:01 +0800 CST

Você pode passar o mesmo ponteiro para SystemTimeToTzSpecificLocalTime para entrada e saída?

  • 9

Aqui está o protótipo da função SystemTimeToTzSpecificLocalTime:

BOOL SystemTimeToTzSpecificLocalTime(
  [in, optional] const TIME_ZONE_INFORMATION *lpTimeZoneInformation,
  [in]           const SYSTEMTIME            *lpUniversalTime,
  [out]          LPSYSTEMTIME                lpLocalTime
);

Como você pode ver, o segundo e o terceiro parâmetros são ponteiros para estruturas SYSTEMTIME, portanto, pelo menos do ponto de vista da verificação de tipo estática, deve ser possível passar o mesmo ponteiro para ambos os parâmetros.

No entanto, a documentação não diz nada sobre se isso é seguro ou não.

Em meus testes, descobri que passar o mesmo ponteiro para ambos os parâmetros funciona conforme o esperado. A função modifica a estrutura SYSTEMTIME e a saída está correta.

Aqui está um exemplo simples:

#include <windows.h>
void main() {
    SYSTEMTIME tm;
    GetSystemTime(&tm);
    SystemTimeToTzSpecificLocalTime(NULL, &tm, &tm);
    wprintf(L"Local Time: %02d:%02d:%02d\n", tm.wHour, tm.wMinute, tm.wSecond);
}

Minha pergunta é: é seguro passar o mesmo ponteiro para ambos os parâmetros? Ou devo usar uma nova estrutura SYSTEMTIME para a saída?

Não consegui encontrar nenhuma informação sobre isso na documentação. ( https://learn.microsoft.com/en-us/windows/win32/api/timezoneapi/nf-timezoneapi-systemtimetotzspecificlocaltime )

Obrigado!

c
  • 1 respostas
  • 44 Views
Martin Hope
c z
Asked: 2024-05-29 21:11:20 +0800 CST

Qual é o tempo de vida de uma captura lambda em C++ [duplicado]

  • 9
Esta pergunta já tem respostas aqui :
Os objetos capturados por um lambda existem enquanto o lambda? (2 respostas)
Fechado há 10 horas .

A comunidade está analisando se deve reabrir esta questão há 10 horas .

Por quanto tempo um parâmetro (capturado por valor) dentro de uma expressão lambda é válido? O parâmetro é válido durante a vida útil do próprio lambda ou é válido apenas durante a chamada?

Por exemplo, dado isto:

[value = 5] { DoSomething(&value) }

O &valueponteiro permanece válido após o término da chamada lambda? (Claro, supondo que o lambda em si ainda esteja vivo.)


Eu já vi essa pergunta com nome semelhante, mas trata da modificação do lambda dentro da expressão, não do tempo de vida.


Para responder aos comentários, também suspeito valueque seja capturado como membro (e portanto deveria permanecer vivo fora da expressão). Mas estou preocupado que isso possa estar errado porque valueteoricamente poderia ser capturado como um membro, mas depois passado para a própria expressão por valor (e, portanto, a referência que vemos não permaneceria viva).

c++
  • 1 respostas
  • 108 Views
Martin Hope
Martin Perry
Asked: 2024-05-29 16:13:59 +0800 CST

Regex multibyte PHP não funciona com UTF-8 [duplicado]

  • 9
Esta pergunta já tem respostas aqui :
preg_match e UTF-8 em PHP (9 respostas)
Caracteres UTF-8 em preg_match_all (PHP) [duplicado] (4 respostas)
Fechado há 12 horas .

Eu tenho uma string UTF-8 que desejo pesquisar todas as ocorrências de img_(\d+). Eu tentei original

$pattern = '/img_(\d+)/u';
preg_match_all($pattern, $text, $matches, PREG_OFFSET_CAPTURE);

mas isso me dá compensações erradas para os padrões.

Eu também tentei:

mb_internal_encoding('UTF-8');
$pattern = 'img_(\d+)';
mb_ereg_search_init($content, $pattern);

$matches = [];        
while ($result = mb_ereg_search_regs()) {
    $matches[] = [
        'match' => $result[0],
        'offset' => mb_ereg_search_getpos() - mb_strlen($result[0]),
    ];
}

mas me dá o mesmo resultado que preg_match_all.

No entanto, quando executo manualmente a pesquisa com isto:

$pos = mb_strpos($content, "img_1", 0);

Eu obtive o deslocamento correto.

Código de exemplo:

$str = "příliš žluťoučký img_1 kůn úpěl ďábelské ódy";

$pattern = '/img_(\d+)/u';
preg_match_all($pattern, $str, $matches, PREG_OFFSET_CAPTURE);

print_r($matches); //gives 24 (wrong)

echo mb_strpos($str, "img_1", 0); //gives 17 (correct)

Como consertar isto?

  • 1 respostas
  • 51 Views
Martin Hope
Some Name
Asked: 2024-05-28 09:08:03 +0800 CST

Atribuir o parâmetro do método RefCell a uma variável local produz erro de compilação

  • 9

Considere o seguinte exemplo simples:

use std::cell::RefCell;

// Compiles fine
fn good(t: RefCell<String>) -> bool {
    t.borrow().len() == 12
}

// error[E0597]: `t` does not live long enough
fn bad(t: RefCell<String>) -> bool {
    let t = t;
    t.borrow().len() == 12
}

Parque infantil

A badfunção falha ao compilar com o seguinte erro:

error[E0597]: `t` does not live long enough
  --> src/lib.rs:9:5
   |
8  |     let t = t;
   |         - binding `t` declared here
9  |     t.borrow().len() == 12
   |     ^---------
   |     |
   |     borrowed value does not live long enough
   |     a temporary with access to the borrow is created here ...
10 | }
   | -
   | |
   | `t` dropped here while still borrowed
   | ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Ref<'_, String>`
   |
   = note: the temporary is part of an expression at the end of a block;
           consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
   |
9  |     let x = t.borrow().len() == 12; x
   |     +++++++                       +++

Isso parece extremamente estranho para mim. Apenas reatribuir o parâmetro de função a variáveis ​​locais falha na compilação. Você poderia explicar por quê?

rust
  • 1 respostas
  • 26 Views
Martin Hope
SquidXTV
Asked: 2024-05-26 01:17:29 +0800 CST

FXMLLoader setController vs setControllerFactory

  • 9

No JavaFX, FXMLLoadercria automaticamente o controlador especificado em um arquivo .fxml usando o construtor 0-arg. Ele também fornece métodos para definir/criar o controlador manualmente usando FXMLLoader#setControllerou FXMLoader#setControllerFactory.

Minha pergunta agora é qual é a diferença entre eles? Existem situações em que um é melhor que o outro?

A documentação de ambos os métodos realmente não responde à minha pergunta.

java
  • 2 respostas
  • 64 Views
Martin Hope
Paul Floyd
Asked: 2024-05-26 01:07:16 +0800 CST

Como forçar o clang assembler a emitir o prefixo `rex.W`?

  • 9

Ao escrever assembly embutido, existe uma maneira de forçar o uso do prefixo rex.W?

Então, em vez de

"psllq $12, %%xmm1\n"

gerando 66 0f 73 f1 0c, eu quero 66 48 0f 73 f1 0c, com o prefixo 0x48 rex.W extra.

EDIT: Cometi um erro com o título inicial, o problema é com o clang e não com o GCC.

insn_sse2.c:11794:11: error: unexpected token in argument list
         "rex.W psllq $12, %%xmm1\n"
          ^
<inline asm>:7:13: note: instantiated into assembly here
rex.W psllq $12, %xmm1

assembly
  • 1 respostas
  • 44 Views
Prev
Próximo

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