mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-15 15:07:16 +00:00
Introduce design pattern for uncopyable objects.
Introduce a new Noncopyable class, one can derive from to mark a class of objects to be uncopyable. This way the compiler can check for any violations for you.
This commit is contained in:
parent
38e953d913
commit
e34adf883c
40
base/include/util/noncopyable.h
Normal file
40
base/include/util/noncopyable.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* \brief Non-copyable objects design pattern.
|
||||
* \author Stefan Kalkowski
|
||||
* \date 2012-02-16
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2012 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU General Public License version 2.
|
||||
*/
|
||||
|
||||
#ifndef _INCLUDE__UTIL__NONCOPYABLE_H_
|
||||
#define _INCLUDE__UTIL__NONCOPYABLE_H_
|
||||
|
||||
namespace Genode {
|
||||
|
||||
/**
|
||||
* Classes of objects not allowed to be copied, should inherit from this one.
|
||||
*
|
||||
* This class declares a private copy-constructor and assignment-operator.
|
||||
* It's sufficient to inherit private from this class, and let the compiler
|
||||
* detect any copy violations.
|
||||
*/
|
||||
class Noncopyable
|
||||
{
|
||||
private:
|
||||
|
||||
Noncopyable(const Noncopyable&);
|
||||
const Noncopyable& operator=(const Noncopyable&);
|
||||
|
||||
protected:
|
||||
|
||||
Noncopyable() {}
|
||||
~Noncopyable() {}
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* _INCLUDE__UTIL__NONCOPYABLE_H_ */
|
Loading…
x
Reference in New Issue
Block a user