move construction with default ctor object
- 
					
					
					
					
 Guten Morgen, folgendes class Foo { public: Foo(){} //default Foo(int x){} //val } class Bar { public: Bar(Foo&& foo): _foo(std::move(foo)) {} Foo_foo; };Wenn ich nun Bar mit Foo erstellen möchte, geht Bar b(Foo());nicht, wobei Bar b(Foo(42));geht. erkomm damit klar wenn ich "keinen" standart Ctor verwendet. habe auch mal den operator()()=delete:falls der ctr hier in konflikt steht.. geht aber nicht was mache ich falsch? danke ezch 
 
- 
					
					
					
					
 @SoIntMan sagte in move construction with default ctor object: was mache ich falsch? Warnungen anmachen  <source>:21:10: warning: parentheses were disambiguated as a function declaration [-Wvexing-parse] 21 | Bar b(Foo()); | ^~~~~~~ <source>:21:10: note: replace parentheses with braces to declare a variable 21 | Bar b(Foo()); | ^~~~~~~ | - | { - | }Für genaueres Verständniss, der Suchbegriff ist: "The Most Vexing Parse" (Damit findet man z.B. den Link: https://www.fluentcpp.com/2018/01/30/most-vexing-parse/) Und: Bar b{Foo()};funktioniert. Edit: Die Warnung habe ich mit der neusten GCC Version und dem Compiler Explorer erstellt. Ich denke, dass andere Compiler auch warnen werden. 
 
- 
					
					
					
					
 @Schlangenmensch sagte in move construction with default ctor object: Für genaueres Verständniss, der Suchbegriff ist: "The Most Vexing Parse" aha.. habe gegoogelt und gegoogelt aber diese Begriff hab ich ne gefunden oder in verbindung gesetzt;) Danke Dir 
 
- 
					
					
					
					
 @Schlangenmensch sagte in move construction with default ctor object: Die Warnung habe ich mit der neusten GCC Version und dem Compiler Explorer erstellt. Ich denke, dass andere Compiler auch warnen werden. ja ne warnung kommt in msvc nicht 
 
- 
					
					
					
					
 @SoIntMan Hm, ich bekomme auc mit MSVC eine Warnung: warning C4930: 'Bar b(Foo (__cdecl *)(void))': prototyped function not called (was a variable definition intended?) Ist nicht so schön, wie die vom GCC, aber es wird zumindest angemeckert.