Commit 4abd57dc authored by bmeurer@chromium.org's avatar bmeurer@chromium.org

Use C++11 deleted functions feature if available.

Implement DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS
using C++11 deleted functions if possible.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/19728003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b951f03c
......@@ -327,11 +327,18 @@ F FUNCTION_CAST(Address addr) {
}
#if __cplusplus >= 201103L
#define DISALLOW_BY_DELETE = delete
#else
#define DISALLOW_BY_DELETE
#endif
// A macro to disallow the evil copy constructor and operator= functions
// This should be used in the private: declarations for a class
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&) DISALLOW_BY_DELETE; \
void operator=(const TypeName&) DISALLOW_BY_DELETE
// A macro to disallow all the implicit constructors, namely the
......@@ -341,7 +348,7 @@ F FUNCTION_CAST(Address addr) {
// that wants to prevent anyone from instantiating it. This is
// especially useful for classes containing only static methods.
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName(); \
TypeName() DISALLOW_BY_DELETE; \
DISALLOW_COPY_AND_ASSIGN(TypeName)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment