>>817
#ifdef __GNUG__
// ...
#elseif __VISUALC__
// ...
#endif

なんてするより、

version(__GNUG__) {
// ...
}
version(__VISUALC__) {
// ...
}

としたほうがずっとスマートであることは確かです。
ただ、これをトランスレータ(コンパイラ)に任せるのでは若干実装に手間がかかりますし(めんどくさいだけ)、個人的に"version"というよく使われそうな単語を予約語に含めるのはいかがなものかと思います。
とりあえずstatic_assertは入れてもいいかなとは思っていますが…