Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 INLINE_CTOR_H_ | 5 #ifndef INLINE_CTOR_H_ |
| 6 #define INLINE_CTOR_H_ | 6 #define INLINE_CTOR_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 class InlineCtorsArentOKInHeader { | 11 class InlineCtorsArentOKInHeader { |
| 12 public: | 12 public: |
| 13 InlineCtorsArentOKInHeader() {} | 13 InlineCtorsArentOKInHeader() {} |
| 14 ~InlineCtorsArentOKInHeader() {} | 14 ~InlineCtorsArentOKInHeader() {} |
| 15 | 15 |
| 16 private: | 16 private: |
| 17 std::vector<int> one_; | 17 std::vector<int> one_; |
| 18 std::vector<std::string> two_; | 18 std::vector<std::string> two_; |
| 19 }; | 19 }; |
| 20 | 20 |
| 21 #define INLINE_CTORS_IN_A_MACRO(CLASS_NAME) \ | |
| 22 class CLASS_NAME { \ | |
| 23 public: \ | |
| 24 CLASS_NAME() {} \ | |
| 25 ~CLASS_NAME() {} \ | |
| 26 \ | |
| 27 private: \ | |
| 28 std::vector<int> one_; \ | |
| 29 std::vector<std::string> two_; \ | |
| 30 } | |
| 31 INLINE_CTORS_IN_A_MACRO(InlineCtorsBehindAMacroArentOKInHeader); | |
| 32 MACRO_FROM_CPP; | |
|
Nico
2015/12/10 14:22:35
Do we need the "macro defined in cpp file but used
Jeffrey Yasskin
2015/12/10 16:20:00
It's pretty obscure, but the inline-virtuals patch
| |
| 33 | |
| 21 class DeletedMembersInHeaderAreOKThough { | 34 class DeletedMembersInHeaderAreOKThough { |
| 22 public: | 35 public: |
| 23 DeletedMembersInHeaderAreOKThough() = delete; | 36 DeletedMembersInHeaderAreOKThough() = delete; |
| 24 ~DeletedMembersInHeaderAreOKThough() = delete; | 37 ~DeletedMembersInHeaderAreOKThough() = delete; |
| 25 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = | 38 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = |
| 26 delete; | 39 delete; |
| 27 | 40 |
| 28 private: | 41 private: |
| 29 std::vector<int> one_; | 42 std::vector<int> one_; |
| 30 std::vector<std::string> two_; | 43 std::vector<std::string> two_; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 80 | 93 |
| 81 // Plugin does warn about inlining four ctor/dtor calls. | 94 // Plugin does warn about inlining four ctor/dtor calls. |
| 82 struct FourNonTrivialMembers { | 95 struct FourNonTrivialMembers { |
| 83 NonTrivialStruct a; | 96 NonTrivialStruct a; |
| 84 NonTrivialStruct b; | 97 NonTrivialStruct b; |
| 85 NonTrivialStruct c; | 98 NonTrivialStruct c; |
| 86 NonTrivialStruct d; | 99 NonTrivialStruct d; |
| 87 }; | 100 }; |
| 88 | 101 |
| 89 #endif // INLINE_CTOR_H_ | 102 #endif // INLINE_CTOR_H_ |
| OLD | NEW |