OLD | NEW |
1 // Copyright 2013 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. |
| 11 // Mojo C++ API users can assume that mojo/public/cpp/system/macros.h |
| 12 // includes mojo/public/c/system/macros.h. |
| 13 |
10 // Annotate a virtual method indicating it must be overriding a virtual method | 14 // Annotate a virtual method indicating it must be overriding a virtual method |
11 // in the parent class. Use like: | 15 // in the parent class. Use like: |
12 // virtual void foo() OVERRIDE; | 16 // virtual void foo() OVERRIDE; |
13 #if defined(_MSC_VER) || defined(__clang__) | 17 #if defined(_MSC_VER) || defined(__clang__) |
14 #define MOJO_OVERRIDE override | 18 #define MOJO_OVERRIDE override |
15 #else | 19 #else |
16 #define MOJO_OVERRIDE | 20 #define MOJO_OVERRIDE |
17 #endif | 21 #endif |
18 | 22 |
19 // A macro to disallow the copy constructor and operator= functions. | 23 // A macro to disallow the copy constructor and operator= functions. |
(...skipping 24 matching lines...) Expand all Loading... |
44 }; \ | 48 }; \ |
45 type(type&); \ | 49 type(type&); \ |
46 void operator=(type&); \ | 50 void operator=(type&); \ |
47 public: \ | 51 public: \ |
48 operator rvalue_type() { return rvalue_type(this); } \ | 52 operator rvalue_type() { return rvalue_type(this); } \ |
49 type Pass() { return type(rvalue_type(this)); } \ | 53 type Pass() { return type(rvalue_type(this)); } \ |
50 typedef void MoveOnlyTypeForCPP03; \ | 54 typedef void MoveOnlyTypeForCPP03; \ |
51 private: | 55 private: |
52 | 56 |
53 #endif // MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ | 57 #endif // MOJO_PUBLIC_CPP_SYSTEM_MACROS_H_ |
OLD | NEW |