diff options
Diffstat (limited to 'runtime/base/macros.h')
| -rw-r--r-- | runtime/base/macros.h | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/runtime/base/macros.h b/runtime/base/macros.h index f5a38bbf35..febea61b8d 100644 --- a/runtime/base/macros.h +++ b/runtime/base/macros.h @@ -63,22 +63,33 @@ struct CompileAssert { #define COMPILE_ASSERT(expr, msg) \ typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] // NOLINT -// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. -// It goes in the private: declarations in a class. +// Declare a friend relationship in a class with a test. Used rather that FRIEND_TEST to avoid +// globally importing gtest/gtest.h into the main ART header files. +#define ART_FRIEND_TEST(test_set_name, individual_test)\ +friend class test_set_name##_##individual_test##_Test + +// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. It goes in the private: +// declarations in a class. #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ - TypeName(const TypeName&); \ - void operator=(const TypeName&) + TypeName(const TypeName&) = delete; \ + void operator=(const TypeName&) = delete -// A macro to disallow all the implicit constructors, namely the -// default constructor, copy constructor and operator= functions. +// A macro to disallow all the implicit constructors, namely the default constructor, copy +// constructor and operator= functions. // -// This should be used in the private: declarations for a class -// that wants to prevent anyone from instantiating it. This is -// especially useful for classes containing only static methods. +// This should be used in the private: declarations for a class 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() = delete; \ DISALLOW_COPY_AND_ASSIGN(TypeName) +// A macro to disallow new and delete operators for a class. It goes in the private: declarations. +#define DISALLOW_ALLOCATION() \ + public: \ + ALWAYS_INLINE void operator delete(void*, size_t) { UNREACHABLE(); } \ + private: \ + void* operator new(size_t) = delete + // The arraysize(arr) macro returns the # of elements in an array arr. // The expression is a compile-time constant, and therefore can be // used in defining new arrays, for example. If you use arraysize on |