This repository has been archived on 2023-10-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
blender-archive/source/blender/blenlib/BLI_utility_mixins.h
Jacques Lucke f8df6286c2 BLI: add utilities for defining non-movable and non-copyable classes
Structs and classes can subclass these member-free classes privately.
Then they become non-movable, non-copyable or both.
2020-02-10 15:33:39 +01:00

30 lines
865 B
C++

#pragma once
namespace BLI {
class NonCopyable {
public:
/* Disable copy construction and assignment. */
NonCopyable(const NonCopyable &other) = delete;
NonCopyable &operator=(const NonCopyable &other) = delete;
/* Explicitly enable default construction, move construction and move assignment. */
NonCopyable() = default;
NonCopyable(NonCopyable &&other) = default;
NonCopyable &operator=(NonCopyable &&other) = default;
};
class NonMovable {
public:
/* Disable move construction and assignment. */
NonMovable(NonMovable &&other) = delete;
NonMovable &operator=(NonMovable &&other) = delete;
/* Explicitly enable default construction, copy construction and copy assignment. */
NonMovable() = default;
NonMovable(const NonMovable &other) = default;
NonMovable &operator=(const NonMovable &other) = default;
};
} // namespace BLI