Recently I end up using structs everywhere as functions parameters to basically get named function parameters and better default arguments. Are there any downsides to this? So far the only annoying thing is to have to define those structs.
struct FunParams{
int i = 5;
float f = 3.14f;
std::string s = "hello";
};
void Fun(const FunParams& params){}
int main(){
Fun({.s = "hi there"});
}
There’s a design pattern aptly called Parameter Object.
https://wiki.c2.com/?ParameterObject
Parameter Object is a popular solution for problems such as: