12345678910111213141516171819202122232425262728293031323334 |
- //===----------------------------------------------------------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef DEFAULTONLY_H
- #define DEFAULTONLY_H
- #include <cassert>
- class DefaultOnly
- {
- int data_;
- DefaultOnly(const DefaultOnly&);
- DefaultOnly& operator=(const DefaultOnly&);
- public:
- static int count;
- DefaultOnly() : data_(-1) {++count;}
- ~DefaultOnly() {data_ = 0; --count;}
- friend bool operator==(const DefaultOnly& x, const DefaultOnly& y)
- {return x.data_ == y.data_;}
- friend bool operator< (const DefaultOnly& x, const DefaultOnly& y)
- {return x.data_ < y.data_;}
- };
- int DefaultOnly::count = 0;
- #endif // DEFAULTONLY_H
|