- 58 名前:デフォルトの名無しさん mailto:sage [2021/05/23(日) 09:31:01.96 ID:apxwsDfF.net]
- >>57
ありえん 1つのthrowに対し、呼び出し元のcatchで呼び出すべき(オーバーロードされた)関数シンボルを一意に列挙できるなら アンワインド時にオーバーロードのしくみで例外ハンドラの解決を行えるかもしれないが、これは論理的に成り立たない なぜなら、例えばintを例外をスローする関数foo()がbar()とbaz()から呼ばれているとして、 bar()にcatch (int)が書かれているのにbaz()に描かれていないとした場合、 bar()経由の呼び出しにおいては(オーバーロードされた)関数シンボルのリストに func(int)が含まれるのに対し、 baz()経由の呼び出しにおいては(オーバーロードされた)関数シンボルのリストに func(int)が含まれない、 となって一意にならず、throwした瞬間にどっちなのか解決不能 やっぱcatch側が(何が来るかわからない状態で)待ち受けているとしか考えられない
|

|