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
This commit is contained in:
parent
b951f03cee
commit
4abd57dc2d
@ -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)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user