ゆとりーなの日記

日記的な事を書いて行くと思はれる

どうしてこうなった

勢いに任せてつい「C++WGアドホック会議後にCryoliteさんとkikairoyaさんとzakさんを問い詰める会」の参加しそうな人のところに名前を書いてしまったのですが、よく見ると皆さんアドホック会議に出る人みたいだし、お互い面識ありそうな感じがします。少しでしゃばってしまったのではないかと反省しています。
今日の本題ですが、大学で少し暇な時間があったのでその時間を使ってはてなな人たちのブログを一通り見ていたのですが、こんな記事を見つけました。「http://d.hatena.ne.jp/ucq/20100222」。unionだけで書くプログラムにとても感動して、色んな環境でつい試してみました。
試したコードはこんな感じのものです。

#include <cstdio>
#include <cstdlib>

union Main {
  Main() {
    std::puts("The World!");
    std::exit(0);
  }
} main;

で、結果です。
gcc4.3.4

出力:
The World!

bcc5.5

コンパイルエラー E2012:
'main' のアドレスを得ることはできない

msvc9

リンクエラー error LNK2019:
未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。

まともに通ったのはgccだけでしたとさ。