デフォルト引数は好き?

この前ゲーム会社時代の友人と喋っていたとき「デフォルト引数」についてお互いの意見をぶつけ合った。

僕は結構すきでよく使う派。

例えばこんな感じ

namespace calculate{
  enum DataType{
    SCLAR   = 0x01
    VECTORE = 0x02,
    COMPLEX = 0x03,
  };

  bool function(double* value, DataType type = VECTOR);
}


でもこれは良くないという人がいて,

 bool function(double* value, DataType type);
 bool function(double* value);

と二つ定義するべきだという意見がありました。

どっちがいいんでしょうかね?