関数の引数は bool より enum

void enable(bool enable);

このような関数なら、enable(true); と書けば「有効にする」で、enable(false); と書けば「無効にする」ということが一目瞭然ですので問題ありません。

でも、boolって何を意味しているのか結構わからなくなることが多いんです。

void drawRedOrBlueBox(bool dotted, bool red, bool placeBottom);

無理矢理な例でよくわからないかもしれませんが、この場合に

drawRedOrBlueBox(true, true, true);

と書いてあっても意味不明ですよね。

そこで enum を使います。

enum LineType {
  LINE_TYPE_SOLID,
  LINE_TYPE_DOTTED
};
enum Color {
  COLOR_BLUE,
  COLOR_RED
};
enum Place {
  PLACE_TOP,
  PLACE_BOTTOM
};
void drawRedOrBlueBox(LineType, Color, Place);

このように定義しておけば

drawRedOrBlueBox(LINE_TYPE_DOTTED, COLOR_RED, PLACE_BOTTOM);

と記述することができます。enum をいちいち記述するのはめんどくさいかもしれませんが、読みやすいですよ。

えっ!? IDEの手助けがあれば仮引数表示してくれるから問題ないって!?

スミマセン、私、oldtype な Emacs ユーザーなものでして…