Cスタイルキャストが有用な場面
mozilla/xpcom/reflect/xptinfo/public/xptinfo.h:215-218 →
Bugzilla@Mozilla – Bug 49641 を見ていてなるほどと思ったのでメモ。
このあたり仕様に詳しくはないけど、かつては incomplete タイプへの reinterpret_cast を許さないコンパイラというのがあったものと伺える。とりあえず手元の g++ (3.4) でも Visual C++ Compiler (13.00.9466) でも次のコードは通ったので、つまり、それはバグだったのではないかと。
class foo; main() { void* a = 0; reinterpret_cast<foo*>(a); }
それにしてもこんなことであれこれ報告者に言われて Mozilla の中の人がちょっとかわいそう。人のことはあまり言えないけど。