>>367
最近C++を勉強し始めたばかりなので間違っていたらすみません。
引数が省略されたときの値がコンパイル時に決まっていないとコンパイラが困るからじゃないですか?。

>  // 引数が指定されればelemを引数の値にセット
>  // 引数が指定されなければelemを反転した値にセット

混乱しそうな仕様ですね。