<rcurtin[m]>
ok---I'm done with #2777. I passed through the code yesterday and today, addressed any issues I found, and so whenever folks want to review it, I will respond and we can get it merged :)
<zoq[m]>
<rcurtin[m]> "ok---I'm done with #2777. I..." <- I'll set it on my list for tomorrow.
<rcurtin[m]>
it may take more than one day 😄 it's like 40 million lines of code or something like that in the diff
<zoq[m]>
<rcurtin[m]> "it may take more than one day..." <- wow
<rcurtin[m]>
I might be exaggerating 😄
<zoq[m]>
rcurtin[m]: +15561/-22597 not quite 40 million but wow
<rcurtin[m]>
much of it can be ignored, and many of the files have just been moved for now, but yeah, it is a huge amount of code that had to change
<rcurtin[m]>
yeah, there is no way around this in C++, just pass the default value for b
<rcurtin[m]>
it would be nice if there were keyword arguments or something, but all the solutions I've seen in C++ are more tedious than they're worth
<rcurtin[m]>
so, we have to think carefully about the order that we put our default arguments in... we should try and make them ordered such that the most common ones come first, and the least common ones come last
<EshaanAgarwal[m]>
rcurtin[m]: Agreed ! Python already handles it using that.
<rcurtin[m]>
the other way we work around this issue---and it's not a complete solution---is that when you create an mlpack machine learning model object (like, say, `KMeans<>` or something), you can specify no values (i.e. construct it with all defaults)
<rcurtin[m]>
but then after constructing, you can use accessor functions to modify only the members of `KMeans<>` that you want