Perguntas com a marcação «c++»

C ++ é uma linguagem de programação de uso geral. Foi originalmente projetado como uma extensão para C e tem uma sintaxe semelhante, mas agora é uma linguagem completamente diferente. Use esta tag para perguntas sobre o código (a ser) compilado com um compilador C ++. Use uma tag específica da versão para perguntas relacionadas a uma revisão padrão específica [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20] etc.


2
Desambiguador de modelo para nomes dependentes
Encontrei o seguinte problema, compilando o seguinte exemplo: template <int N> class Matrix { public: template <int Idx> int head() { return Idx; } }; template <typename T> class Test { static constexpr int RayDim = 3; public: int func() const { Matrix<RayDim> yF; return yF.head<1>(); // ^ is template …
8 c++ 



2
Como implementar a forma generalizada de std :: same_as (ou seja, para mais de dois parâmetros de tipo) que é independente da ordem dos parâmetros?
fundo Sabemos que o conceito std::same_asé agnóstico em ordem (em outras palavras, simétrico): std::same_as<T, U>é equivalente a std::same_as<U, T>( questão relacionada ). Nesta pergunta, eu gostaria de implementar algo mais geral: template <typename ... Types> concept same_are = ...que verifique se os tipos no pacote Typessão iguais entre si. Minha …



1
inicializando struct com {0}
Estou depurando algum código que é essencialmente idêntico a isso: struct Foo { int a; int b; }; struct Bar { Bar() {} Foo foo{0}; }; Quando eu faço uma instância de Bar, parece que ambos ae bsão inicializados com zero. Isso é garantido? Onde posso encontrar isso nas especificações?

2
Como classificar matriz de seqüências de caracteres que contém números positivos e negativos em c ++.?
String str[]={"-123","89","-10","456"}; stré uma matriz de cadeias, com cada cadeia no formato de um número inteiro, e você deve executar a classificação nessa matriz no O(n log n)tempo. As cadeias em strpodem representar números inteiros positivos e negativos. O comprimento máximo dessas seqüências é 1024 caracteres. Eu sei que uma …

1
Um compilador pode colocar a implementação de um destruidor virtual declarado implicitamente em uma única unidade de tradução separada?
O código a seguir compila e vincula com Visual Studio(2017 e 2019 com /permissive-), mas não compila com gccou clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct Bar; std::unique_ptr<Bar> bar_; }; foo.cpp #include "foo.h" …


2
Por que o esperado <T> no LLVM implementa dois construtores para o esperado <T> &&?
Expected&lt;T&gt;é implementado em llvm / Support / Error.h. É uma união com tags que contém a Tou an Error. Expected&lt;T&gt;é uma classe de modelo com o tipo T: template &lt;class T&gt; class LLVM_NODISCARD Expected Mas esses dois construtores realmente me confundem: /// Move construct an Expected&lt;T&gt; value from an Expected&lt;OtherT&gt;, …
8 c++  llvm 

3
O struct tm armazena informações de fuso horário como seu membro de dados
Considere o seguinte código C ++ #include &lt;ctime&gt; #include &lt;iostream&gt; int main() { std::time_t now = std::time(nullptr); struct tm local = *std::localtime(&amp;now); struct tm gm = *std::gmtime(&amp;now); char str[20]; std::strftime(str, 20, "%Z", &amp;local); std::cout &lt;&lt; str &lt;&lt; std::endl; // HKT std::strftime(str, 20, "%Z", &amp;gm); std::cout &lt;&lt; str &lt;&lt; std::endl; // …
8 c++  c  ctime  time.h 

3
Saída estranha ao somar 1 << 2 e 1 << 3 em C ++
Então, eu estava apenas tentando um pouco de manipulação em C ++. Aqui está o que eu tentei: int a = 1&lt;&lt;2; cout&lt;&lt;a; Isso fornece a saída como 4. int a = 1&lt;&lt;3; cout&lt;&lt;a; Isso fornece a saída como 8 Mas quando eu faço: int a = 1&lt;&lt;2 + 1&lt;&lt;3; …

2
Como o std :: atomic_ref é implementado para tipos não atômicos?
Gostaria de saber como pode std::atomic_refser implementado eficientemente (um std::mutexpor objeto) para objetos não atômicos, pois a propriedade a seguir parece bastante difícil de aplicar: As operações atômicas aplicadas a um objeto por meio de um atomic_ref são atômicas em relação às operações atômicas aplicadas por qualquer outro atomic_ref que …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.