class A {}; int main() { A() = A(); return 0; } Por que este código compila? Não deveria haver algum erro que no lado esquerdo do operador de atribuição deve ser colocado lvalue? É A () lvalue? versão g ++ 4.7
class A {}; int main() { A() = A(); return 0; } Por que este código compila? Não deveria haver algum erro que no lado esquerdo do operador de atribuição deve ser colocado lvalue? É A () lvalue? versão g ++ 4.7
Todos nós sabemos que 0 0 é indeterminado. Mas , javascript diz que: Math.pow(0, 0) === 1 // true e C ++ diz a mesma coisa: pow(0, 0) == 1 // true PORQUE? Eu sei disso: >Math.pow(0.001, 0.001) 0.9931160484209338 Mas por que não Math.pow(0, 0)lança nenhum erro? Ou talvez NaNseja...
Existe uma diferença entre esses dois segmentos de código: void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } e void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } História de fundo:...
Estava a tentar resolver este exercício em www.spoj.com: FCTRL - Factorial Você realmente não precisa ler, apenas faça se estiver curioso :) Primeiro eu implementei em C ++ (aqui está minha solução): #include <iostream> using namespace std; int main() { unsigned int num_of_inputs;...
Como duas versões da mesma função, diferindo apenas em uma sendo embutida e a outra não, podem retornar valores diferentes? Aqui está um código que escrevi hoje e não tenho certeza de como funciona. #include <cmath> #include <iostream> bool is_cube(double r) { return...
Digamos que eu vá compilar algum código-fonte C ++ mal escrito que invoca um comportamento indefinido e, portanto (como eles dizem) "tudo pode acontecer". Do ponto de vista do que a especificação da linguagem C ++ considera aceitável em um compilador "compatível", "qualquer coisa" neste cenário...
Estou assistindo a palestra de Chandler Carruth no CppCon 2019: Não há abstrações de custo zero nele, ele dá o exemplo de como ficou surpreso com a quantidade de sobrecarga que você incorre usando um std::unique_ptr<int>over over int*; esse segmento começa aproximadamente no ponto...
Estou tentando este código no compilador C ++ do GNU e não consigo entender seu comportamento: #include <stdio.h>; int main() { int num1 = 1000000000; long num2 = 1000000000; long long num3; //num3 = 100000000000; long long num4 = ~0; printf("%u %u %u", sizeof(num1), sizeof(num2),...
É difícil dizer o que está sendo perguntado aqui. Esta questão é ambígua, vaga, incompleta, excessivamente ampla ou retórica e não pode ser respondida de maneira razoável em sua forma atual. Para obter ajuda no esclarecimento dessa questão para que ela possa ser reaberta, visite...
Do ponto de vista do design, por que, em C ++, não existe uma classe-base mãe de todas, o que normalmente ocorre objectem outras linguagens?
Quando se trata de construtores, adicionar a palavra-chave explicitevita que um compilador entusiasmado crie um objeto quando essa não era a primeira intenção do programador. Esse mecanismo também está disponível para operadores de fundição? struct Foo { operator std::string()...
Eu estava apenas brincando com o g ++ 4.7 (um dos instantâneos posteriores) com -std = c ++ 11 habilitado. Tentei compilar parte da minha base de código existente e um caso que falhou me confunde um pouco. Eu apreciaria se alguém pudesse explicar o que está acontecendo. Aqui está o...
Eu estava lendo "The C ++ Programming Language" de Stroustrup, onde ele diz que de duas maneiras de adicionar algo a uma variável x = x + a; e x += a; Ele prefere +=porque provavelmente é melhor implementado. Acho que ele quer dizer que funciona mais rápido também. Mas é mesmo? Se...
Sou um iniciante em programação C ++. Hoje me deparei com um novo tópico: fortemente tipado enum. Pesquisei um pouco, mas até agora não consigo descobrir por que precisamos disso e para que serve? Por exemplo, se tivermos: enum xyz{a, b, c}; /*a = 0, b = 1, c = 2, (Typical C format)*/ Por...
Eu gostaria de ter vários tipos que compartilham a mesma implementação, mas ainda são de tipos diferentes em C ++. Para ilustrar minha pergunta com um exemplo simples, gostaria de ter uma aula de Maçãs, Laranjas e Bananas, todas com as mesmas operações e a mesma implementação. Eu gostaria que...
C ++ 14 apresenta std::dynarray: std :: dynarray é um contêiner de sequência que encapsula matrizes com um tamanho que é fixo na construção e não muda durante a vida útil do objeto. std::dynarraydeve ser alocado em tempo de execução da mesma forma que std::vector. Então, quais são os...
Preciso testar se as posições (de 0 a 31 para um inteiro de 32 bits) com valor de bit 1 formam uma região contígua. Por exemplo: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous Quero que este teste, ou seja, alguma função
Eu não gosto de ter caixas mágicas espalhadas por todo o meu código ... como exatamente essas duas classes funcionam para permitir que basicamente qualquer função seja mapeada para um objeto de função, mesmo se a função <> tiver um parâmetro completamente diferente definido para aquele que...
Portanto, sei o que é pragma e para que serve, mas qual é o significado da palavra em si? Já usei isso muitas vezes em código, mas nunca soube realmente o que a palavra realmente significa ou significa.
Depois de alguns anos codificando em C ++, recentemente me ofereceram um emprego de codificador em C, na área de embarcados. Deixando de lado a questão de saber se é certo ou errado descartar o C ++ no campo incorporado, há alguns recursos / expressões idiomáticas em C ++ dos quais eu sentiria...