Resultados da pesquisa a pedido "most-vexing-parse"
Existe alguma diferença entre `List x;` e `List x ()`
O título vem do famoso sitePerguntas frequentes sobre C ++ por Marshall Cline.O autor afirma que há uma diferença entre os dois exemplos de código a seguir.S...
Como isso é uma análise mais irritante?
Eu estava passando por issoartigo [http://herbsutter.com/2013/05/09/gotw-1-solution/] e há uma declaração no item 3 dizendo // C++98 rectangle w( origin(), extents() ); // oops, vexing parsecomo é a análise mais irritante acima? Se eu fiz algo ...
Definição de função C ++ e incompatibilidade de declaração variável?
Considere este código muito simples: #include <memory> class Foo { public: Foo() {}; }; class Bar { public: Bar( const std::shared_ptr<Foo>& foo ) {} }; int main() { Foo* foo = new Foo; Bar bar( std::shared_ptr<Foo>( foo ) ); return 0; }Por que ...
Construtor não retornando objeto utilizável
Eu tenho um problema com o construtor, que não está funcionando como eu esperari Se eu tentar inicializar minha classe assim, ela funcionará e eu recebo um objeto utilizável: vector<float> v; MyClass<2> a(v); No entanto, se eu tentar criar uma ...
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()); ...
Entendendo a análise mais problemática - por que permitir uma sintaxe ambígua?
Ao tentar entender o problema "Mais problemático" em C / C ++, essa questão vem imediatamente à mente - por que uma sintaxe que faz com que esse pr...
Diferença C ++ 11 em construtores (chaves)
Eu sou bastante novo em C ++ e observei que as seguintes linhas de código agem de maneira diferente MyClass c1; c1.do_work() //works MyClass c2(); c2.do_work() //compiler error c2228: left side is not a class, structure, or union. MyClass c3{}; ...
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 ...
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 ...
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 ...