謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

object.dの乗っ取り

自前のobject.dを用意すればphobosのobject.dを上書きできる。
phobosのobject.dは読みにいかなくなるのでphobosのobject.dを自前のobject.dにコピーする必要がある。
libphobos2.aはphobos側のobject.oを持っているので、自前のobject.dをコンパイルしてリンクすると両方のobject.oに同じ宣言が含まれる状態になりエラーがでるので、リンクしない事。置いておくだけで良い。



んでこれがどういう事に使えるかというと

mixin(import("/usr/src/phobos/object.d"));//Linux上だとバグありで-Jpathを指定したとしても相対パスしか受け取らなかったはずだから多分これうまくいかない。コピペの方を推奨。
import std.variant;
alias Variant var;

とかできる訳だ(ちなみにJavascriptでのvarはvariable(変数)の略なので注意。あとLinuxではstd.variant自体がうまく動かないが気にしない)。
他にもstd.stdioとかstd.convとかstd.traitsとかstd.typetupleとかstd.processとかを入れておくと便利そう。
ちなみにundocumentedな方法なはずなので注意。