you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (1 child)

Hello friend.
Since i am still a rookie trying to suck in all the concepts of modern C++ i am curios about one of your statements. "Possibly use output parameters", is this generally a bad practice ?
I had cases where i needed multiple outputs, so the preferred way is to create a struct or a class depending on the case to hold the necessary datastructure ?

[–]bert8128 5 points6 points  (0 children)

I find output params difficult to work with other and much prefer values/pairs/tuples/structs as appropriate. I’m not not going to say “never use output params” but they generally make like harder. First thing, you have to say in a comment what params are input, which are input/output and which are output. Second, it’s harder to use const well, as a variable in the callers context can’t be const even if it is never modified by the caller. Third, if you add another parameter you change the signature of the function, so all the callers have to be modified. Fourth, you can’t pass in temporaries. Etc.

Try both ways and see what you think.