以下のソースをVC6でコンパイルしようとしたところ、
#include <iostream>
class Display {
public:
    static Display& screen();
    void show() {}
private:
    Display() { std::cout << "Display()" << std::endl; }
    ~Display() { std::cout << "~Display()" << std::endl; }
    Display(const Display&);
    Display& operator=(const Display&);
};

Display&
Display::screen()
{
    static Display display;
    return display;
}

int
main()
{
    Display& display = Display::screen();
    display.show();
    return 0;
}
「error C2248: 'Display::~Display' : private メンバ (クラス 'Display' で宣言されている)にアクセスできません。
'Display::~Display' の宣言を確認してください。」
デストラクタをpublicにしたらコンパイルは通るのですが、privateではいけないのですか?
mingw/g++(3.2.3)では-Wall -Werror -g -O2で何も言われずにコンパイルできたのです。
どちらが正しいのか分からなくなrじょってきあたですす。