/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
util/generic/noncopyable.h
38 строк
910 B
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once /** * @class TNonCopyable * * Inherit your class from `TNonCopyable` if you want to make it noncopyable. * * Example usage: * @code * class Foo: private TNonCopyable { * // ... * }; * @endcode */ namespace NNonCopyable { // protection from unintended ADL struct TNonCopyable { TNonCopyable(const TNonCopyable&) = delete; TNonCopyable& operator=(const TNonCopyable&) = delete; TNonCopyable() = default; ~TNonCopyable() = default; }; struct TMoveOnly { TMoveOnly(TMoveOnly&&) noexcept = default; TMoveOnly& operator=(TMoveOnly&&) noexcept = default; TMoveOnly(const TMoveOnly&) = delete; TMoveOnly& operator=(const TMoveOnly&) = delete; TMoveOnly() = default; ~TMoveOnly() = default; }; } using TNonCopyable = NNonCopyable::TNonCopyable; using TMoveOnly = NNonCopyable::TMoveOnly;