オーバーロードの解決方法について

今の言語仕様やライブラリはココが足りないんじゃ…、エディタや周辺ツールにこんな機能が必要なのでは…!?このような要望、具体的な提案などがありましたら、こちらのフォーラムをご活用ください。
返信する

下記のオーバーロードの仕様に

1 個までオプションを選択できます

3
100%
0
0 票
 
投票総数: 3
 

メッセージ
作成者
OverTaker
記事: 231
登録日時: 2005年5月31日(火) 17:14
お住まい: 茨城県

オーバーロードの解決方法について

#1 投稿記事 by OverTaker »

現在のActiveBasicは、TypeDefにより再定義された型と、定義元の型とでは、オーバーロードの解決をすることはできません。

コード: 全て選択

TypeDef newType = baseType
fx(a As baseType)
fx(a As newType)
これのオーバーロードを解決できるようにして欲しいと思っています。
もし解決できるようになれば、例えば次のような、Stringクラスに間違えてLong型を指定したときに、アクセス違反にならずに済みます。

コード: 全て選択

Dim s As String
Dim v As Long
s = v 'LPSTRで解決されるので、警告すら出ない。
もしこの仕様にするのであれば、再定義した型がオーバーロードで見つからなかった場合、定義元の型で解決することもしてほしいです。逆に言えば、もし、再定義した型が見つかれば、優先的にそちらでオーバーロードを解決できるようにしてほしいということです。

特に目立ったデメリットが浮かばないので、何か見落としがあったら指摘していただきたいです。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 by イグトランス »

別件になりますが,ポインタ型と整数型相互の暗黙の型変換にも警告を出すようにするべきだと思います。
オプションでエラーにできても良いくらいだと思います。
返信する