| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef ENTT_COMMON_THROWING_TYPE_HPP
- #define ENTT_COMMON_THROWING_TYPE_HPP
- namespace test {
- struct throwing_type_exception {};
- struct throwing_type {
- throwing_type(bool mode)
- : trigger{mode} {}
- throwing_type(const throwing_type &other)
- : trigger{other.trigger} {
- if(trigger) {
- throw throwing_type_exception{};
- }
- }
- throwing_type &operator=(const throwing_type &other) {
- trigger = other.trigger;
- return *this;
- }
- void throw_on_copy(const bool mode) noexcept {
- trigger = mode;
- }
- bool throw_on_copy() const noexcept {
- return trigger;
- }
- [[nodiscard]] bool operator==(const throwing_type &other) const noexcept {
- return trigger == other.trigger;
- }
- private:
- bool trigger{};
- };
- } // namespace test
- #endif
|