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.

5
Qual é o objetivo do retorno normal?
[dcl.attr.noreturn] fornece o seguinte exemplo: [[ noreturn ]] void f() { throw "error"; // OK } mas eu não entendo qual é o objetivo [[noreturn]], porque o tipo de retorno da função já é void. Então, qual é o objetivo do noreturnatributo? Como é que deve ser usado?

8
Qual é a melhor maneira de concatenar dois vetores?
Estou usando a multitreading e quero mesclar os resultados. Por exemplo: std::vector<int> A; std::vector<int> B; std::vector<int> AB; Eu quero que AB tenha o conteúdo de A e o conteúdo de B nessa ordem. Qual é a maneira mais eficiente de fazer algo assim?
189 c++  vector 

4
Por que alguém usaria classes aninhadas em C ++?
Alguém pode me indicar alguns recursos interessantes para entender e usar classes aninhadas? Eu tenho alguns materiais como Princípios de Programação e coisas como este IBM Knowledge Center - Nested Classes Mas ainda estou tendo problemas para entender o propósito deles. Alguém poderia me ajudar, por favor?


10
Qual é o efeito de ordenar as declarações if… else if por probabilidade?
Especificamente, se eu tenho uma série de if... else ifinstruções, e de alguma forma sei de antemão a probabilidade relativa que cada instrução avaliará true, quanta diferença no tempo de execução faz para classificá-las em ordem de probabilidade? Por exemplo, devo preferir isso: if (highly_likely) //do something else if (somewhat_likely) …


5
Argumentos de modelo padrão para modelos de função
Por que argumentos de modelo padrão são permitidos apenas em modelos de classe? Por que não podemos definir um tipo padrão em um modelo de função de membro? Por exemplo: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Em vez disso, o C ++ força …
187 c++  templates 


9
Como faço para transformar o CMake em um diretório 'bin'?
Atualmente, estou construindo um projeto com uma estrutura de plugins. Estou usando o CMake para compilar o projeto. Os plugins são compilados em diretórios separados. Meu problema é que o CMake compila e salva os binários e plugins, bibliotecas dinâmicas, na estrutura de diretórios da fonte. Como faço para o …
187 c++  plugins  cmake 


21
Como usar enums como sinalizadores em C ++?
Tratar enums como sinalizadores funciona bem em C # por meio do[Flags] atributo, mas qual é a melhor maneira de fazer isso em C ++? Por exemplo, eu gostaria de escrever: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | …
187 c++  enums 

14
Chaves desnecessárias em C ++?
Ao fazer uma revisão de código para um colega hoje, vi uma coisa peculiar. Ele havia cercado seu novo código com chaves assim: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Qual é o resultado disso, se houver? Qual poderia ser …

16
Como chamo :: std :: make_shared em uma classe com apenas construtores protegidos ou privados?
Eu tenho esse código que não funciona, mas acho que a intenção é clara: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); …
187 c++  c++11  shared-ptr 

3
fork () ramifica mais do que o esperado?
Considere o seguinte trecho de código: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Este programa gera 8 pontos. Como isso pode ser possível? Não deveria haver 6 pontos?
186 c++  c  fork 

4
O que fez i = i ++ + 1; legal em C ++ 17?
Antes de começar a gritar comportamento indefinido, isso está explicitamente listado em N4659 (C ++ 17) i = i++ + 1; // the value of i is incremented Ainda em N3337 (C ++ 11) i = i++ + 1; // the behavior is undefined O que mudou? Pelo que posso …

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.