簡単なhackで引数に明示的な型しかとらない指定ってできませんかね?
int a[1];
func( bool ); func( a ); // たまに起こるミス、型チェックを通ってしまう
たとえば
func( explicit bool ); ←こんなキーワード
func( true / false / bool(a) ); // OK
func( a ); // 暗黙の変換はエラー