質問
同じ名前の関数で、値渡しの引数にconstが付いたやつとそうでないやつって
同じスコープ内なら言語規格上常に同じものとみなされる?何か例外無い?

例1: 下記関数のオーバーロードは不可能?
 void foo(const int x);
 void foo(int x);

例2: 下記の前方宣言と関数定義は、同一の関数fooの宣言と定義として問題無い?
 extern void foo(int x);
void foo(const int x);

例3: 例2と同様だがconstの有無が反対のパターン
 extern void foo(const int x);
void foo(int x);

VC2010で実験する限り例1エラー、例2、例3おk、に見え、foo()の実体は一つとみなされるっぽい