1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef DEFAULTONLY_H 11#define DEFAULTONLY_H 12 13#include <cassert> 14 15class DefaultOnly 16{ 17 int data_; 18 19 DefaultOnly(const DefaultOnly&); 20 DefaultOnly& operator=(const DefaultOnly&); 21public: 22 static int count; 23 24 DefaultOnly() : data_(-1) {++count;} 25 ~DefaultOnly() {data_ = 0; --count;} 26 27 friend bool operator==(const DefaultOnly& x, const DefaultOnly& y) 28 {return x.data_ == y.data_;} 29 friend bool operator< (const DefaultOnly& x, const DefaultOnly& y) 30 {return x.data_ < y.data_;} 31}; 32 33int DefaultOnly::count = 0; 34 35#endif // DEFAULTONLY_H 36