Resultados da pesquisa a pedido "most-vexing-parse"

2 a resposta

g ++ rejeita, clang ++ aceita: foo (x) ("bar") ("baz");

Alguém tevePerguntou [https://stackoverflow.com/questions/28254915/code-compiles-with-clang-but-not-with-gcc/28255085] no outro dia, por que algo compila com clang, mas não com gcc. Eu entendi intuitivamente o que estava acontecendo e fui capaz ...

1 a resposta

Most vexing parse

Eu recebi o código deAqu [http://en.wikipedia.org/wiki/Most_vexing_parse]. class Timer { public: Timer(); }; class TimeKeeper { public: TimeKeeper(const Timer& t); int get_time() { return 1; } }; int main() { TimeKeeper time_keeper(Timer()); ...

6 a resposta

Diferença entre criar objeto com () ou sem

eu apenas me deparo com o problema error: request for member ‘show’ in ‘myWindow’, which is of non-class type ‘MainGUIWindow()’ao tentar compilar um aplicativo qt simples: #include <QApplication> #include "gui/MainGUIWindow.h" int main( int ...

2 a resposta

Por que o C ++ nos permite colocar o nome da variável entre parênteses ao declarar uma variável?

Por exemplo, uma declaração como essa: int (x) = 0;Ou até isso: int (((x))) = 0;Eu me deparei com isso porque, no meu código, tinha um fragmento semelhante ao seguinte: struct B { }; struct C { C (B *) {} void f () {}; }; int main() { B *y; C ...

2 a resposta

mecanismo de chamada do construtor

struct my { my(){ std::cout<<"Default";} my(const my& m){ std::cout<<"Copy";} ~my(){ std::cout<<"Destructor";} }; int main() { my m(); //1 my n(my()); //2 } Saída esperada: 1 ) Default 2 ) CopySaída real: O que há de errado com meu entendimento ...

2 a resposta

C ++ A maioria dos vexames analisa quando um literal numérico é o argumento? [duplicado

Esta pergunta já tem uma resposta aqui: Por que os inicializadores de classe podem usar apenas = ou {}? [/questions/16329962/why-can-in-class-initializers-only-use-or] 1 respostaEu estava fazendo uma aula assim: struct InputHandler { ...

4 a resposta

Um detalhe confuso sobre o Most Vexing Parse

Minha pergunta é como a seguinte linha pode ser analisada como uma declaração de função: vector<int> v(istream_iterator<int>(cin), istream_iterator<int>()); Entendo a maioria dos detalhes do Most Vexing Parse e por que o segundo ...

2 a resposta

Entendendo a análise mais problemática - por que permitir uma sintaxe ambígua?

Ao tentar entender o problema &quot;Mais problemático&quot; em C / C ++, essa questão vem imediatamente à mente - por que uma sintaxe que faz com que esse pr...

2 a resposta

construtor vetorial com dois parâmetros é analisado como uma declaração de funçã

Considere este exemplo: #include <iostream> #include <string> #include <vector> #include <iterator> int main() { std::string sen = "abc def ghi jkl"; std::istringstream iss(sen); std::vector<std::string> // declaration in ...

2 a resposta

A construção da chamada de função temporária é interpretada como declaração

Ultimamente, encontrei um problema que de alguma forma (mas apenas de alguma forma) faz sentido para mim. Ele é baseado na interpretação da construção de um temporário como declaração do argumento do construtor único (!). Por favor, dê uma olhada ...