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.

1
Especialização std :: alocador fornecida pelo usuário
Os modelos de classe no ::stdnamespace geralmente podem ser especializados por programas para tipos definidos pelo usuário. Não encontrei nenhuma exceção a esta regra para std::allocator. Então, posso me especializar std::allocatorpara meus próprios tipos? E se me for permitido, preciso fornecer todos os membros do std::allocatormodelo primário de, já que …
8 c++  c++17  allocator 




1
Por que existe um std :: move no <algorithm> e <utility>
Na maioria das vezes que vejo std::moveaqui, está fazendo referência à &lt;utility&gt;versão. O std::movein&lt;algorithm&gt; realmente faz o que o nome sugere, move , enquanto o std::movein&lt;utility&gt; lança seu argumento para um xvalue, que é basicamente apenas uma etapa de pré-processamento para, eventualmente, mover o xvalue para um lvalue. Portanto, não …

1
Especialização baseada na validade do tamanho da matriz
Tentando se especializar com base na validade do tamanho da matriz: // base template template&lt;int p, typename T = void&gt; struct absolute { operator int () const { return 0; } }; // positive case template template&lt;int p&gt; struct absolute&lt;p, typename std::void_t&lt;int[p]&gt;&gt; { operator int () const { return p; …


1
Como entender a resolução proposta do # 1664
Depois de examinar a resolução proposta no # 1664 ( resolução proposta no 1664 ), estou confuso com as regras de um argumento padrão de um modelo de função, cite o conteúdo aqui: De acordo com 8.1.5 [expr.prim.lambda] parágrafo 3 O tipo de fechamento é declarado no menor escopo de …

1
acosl não está no espaço de nome std?
De acordo com cppreference, a função acosldeve estar no namespace std: https://en.cppreference.com/w/cpp/numeric/math/acos No entanto, com o gcc (ou clang), o código abaixo não compila: #include &lt;cmath&gt; int main() { long double var = std::acosl(4.0); return 0; } Eu recebi a seguinte mensagem de erro: gay@latitude-7490:~$ g++ -std=c++11 test.cpp test.cpp: In …
8 c++  c++11 


1
Dedução de tipo incorreto ao passar o ponteiro de função sobrecarregado e seus argumentos
Estou tentando fornecer um invólucro std::invokepara deduzir o tipo de função mesmo quando a função está sobrecarregada. (Fiz uma pergunta relacionada ontem para a versão do ponteiro variável e do método). Quando a função possui um argumento, esse código (C ++ 17) funciona conforme o esperado em condições normais de …


4
Ponteiro exclusivo - Por que o destruidor é chamado 3 vezes
Eu tenho um método que retorna um objeto por valor. O método vem de uma biblioteca que eu não tenho controle. Para o manuseio adicional do objeto, quero continuar trabalhando com um unique_ptr nesse objeto. Aqui está um exemplo: #include &lt;iostream&gt; #include &lt;memory&gt; class Bla { public: Bla() { std::cout …
8 c++  unique-ptr 


2
Como faço para que o meu sizeof sum struct funcione com um pacote de parâmetros vazio
Eu tenho essa estrutura variável para determinar a soma do tamanho de todos os tipos passados: template &lt;typename U, typename... T&gt; struct TotalSizeOf : std::integral_constant&lt;size_t, sizeof(U) + TotalSizeOf&lt;T...&gt;::value&gt; {}; template &lt;typename U&gt; struct TotalSizeOf&lt;U&gt; : std::integral_constant&lt;size_t, sizeof(U)&gt; {}; Uso: TotalSizeOf&lt;double, int, char&gt;::value A questão é: como modifico isso para permitir …
8 c++  c++14 

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.