std::vector<hoge> obj(N, hoge(1, 2));
と書くと、各要素がhoge(1, 2)でコピー初期化される。
>>317は、それがデフォルト引数で省略されているだけ。

>>315はおそらくstd::vector<char>だろうが、
charの初期化なら実行時間が少しはましだったのだろう。

コンパイラが賢ければ、315のようにcharに置き換えて良い型
(コンストラクタがない)なら、
hogeのままでもそう時間は変わらないことが期待できるけど。

一応、次の規格では改善されて、デフォルト引数使う横着はなくなるので、この心配はなくなるはず。