class Uncopyable {
protected:
Uncopyable() {}
~ Uncopyable() {}
private:
Uncopyable(const Uncopyable&);
Uncopyable& operator=(const Uncopyable&);
};
class Hoge : private Uncopyable {
public:
Hoge(int value) : value_(value) {}
private:
int value_;
};
int main(int argc, char* argv[])
{
Hoge hoge1(1);
Hoge hoge2(hoge1);
hoge1 = hoge2;
return 0;
}