OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ | 5 #ifndef MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ |
6 #define MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ | 6 #define MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ |
7 | 7 |
8 #include "mojo/public/c/system/macros.h" | 8 #include "mojo/public/c/system/macros.h" |
9 | 9 |
10 // Define a set of C++ specific macros. | 10 // Define a set of C++ specific macros. |
11 // Mojo C++ API users can assume that mojo/public/cpp/system/macros.h | 11 // Mojo C++ API users can assume that mojo/public/cpp/system/macros.h |
12 // includes mojo/public/c/system/macros.h. | 12 // includes mojo/public/c/system/macros.h. |
13 | 13 |
14 // TODO(vtl): Get rid of this once all users have been eliminated. | |
15 // Annotate a virtual method indicating it must be overriding a virtual method | |
16 // in the parent class. Use like: | |
17 // virtual void foo() OVERRIDE; | |
18 #define MOJO_OVERRIDE override | |
19 | |
20 // A macro to disallow the copy constructor and operator= functions. | 14 // A macro to disallow the copy constructor and operator= functions. |
21 // This should be used in the private: declarations for a class. | 15 // This should be used in the private: declarations for a class. |
22 #define MOJO_DISALLOW_COPY_AND_ASSIGN(TypeName) \ | 16 #define MOJO_DISALLOW_COPY_AND_ASSIGN(TypeName) \ |
23 TypeName(const TypeName&); \ | 17 TypeName(const TypeName&); \ |
24 void operator=(const TypeName&) | 18 void operator=(const TypeName&) |
25 | 19 |
26 // Used to calculate the number of elements in an array. | 20 // Used to calculate the number of elements in an array. |
27 // (See |arraysize()| in Chromium's base/basictypes.h for more details.) | 21 // (See |arraysize()| in Chromium's base/basictypes.h for more details.) |
28 namespace mojo { | 22 namespace mojo { |
29 template <typename T, size_t N> | 23 template <typename T, size_t N> |
(...skipping 15 matching lines...) Expand all Loading... |
45 }; \ | 39 }; \ |
46 type(type&); \ | 40 type(type&); \ |
47 void operator=(type&); \ | 41 void operator=(type&); \ |
48 public: \ | 42 public: \ |
49 operator rvalue_type() { return rvalue_type(this); } \ | 43 operator rvalue_type() { return rvalue_type(this); } \ |
50 type Pass() { return type(rvalue_type(this)); } \ | 44 type Pass() { return type(rvalue_type(this)); } \ |
51 typedef void MoveOnlyTypeForCPP03; \ | 45 typedef void MoveOnlyTypeForCPP03; \ |
52 private: | 46 private: |
53 | 47 |
54 #endif // MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ | 48 #endif // MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ |
OLD | NEW |