16th Jan 2021, 6:26 PM
zaya1235
zaya1235 - avatar
5 ответов
+ 3
zaya1235 see, initializer lists can be used to *implicitly* intialize structs, IF the elements match the types of the struct fields and the number of elements is equal to the number of struct fields. Example, if there a struct `Something` struct Something { std::string s; int x; }; the an initializer list of the form {std::string, int} can implicitly intialize this struct. For example, Something func() { return {std::string{"hello"}, 0}; } these lines are perfectly valid as the returned list gets converted to struct `Something`. This is the reason your second code works. Now in the first code, you need to return `Event` which has 2 fields of type std::string and int. But from the function, you are returning `{"NULL", 0, 0}`, which has 3 elements. So `Event` cannot be initialized from this. To fix the error, you need to return an intializer list of 2 elements rather than 3 (try removing the last 0)
16th Jan 2021, 6:56 PM
XXX
XXX - avatar
+ 1
You need to return an `Event` from the function, but you're returning `{"NULL", 0, 0}` which is an initializer list.
16th Jan 2021, 6:34 PM
XXX
XXX - avatar
+ 1
XXX thank you, I didn't notice that 0
16th Jan 2021, 6:58 PM
zaya1235
zaya1235 - avatar
0
XXX https://code.sololearn.com/cLDmrOZo96Nu/?ref=app Can you tell me why in this code it works
16th Jan 2021, 6:45 PM
zaya1235
zaya1235 - avatar
0
52 and 62 lines
16th Jan 2021, 6:45 PM
zaya1235
zaya1235 - avatar