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 |
21 class DeletedMembersInHeaderAreOKThough { | 33 class DeletedMembersInHeaderAreOKThough { |
22 public: | 34 public: |
23 DeletedMembersInHeaderAreOKThough() = delete; | 35 DeletedMembersInHeaderAreOKThough() = delete; |
24 ~DeletedMembersInHeaderAreOKThough() = delete; | 36 ~DeletedMembersInHeaderAreOKThough() = delete; |
25 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = | 37 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = |
26 delete; | 38 delete; |
27 | 39 |
28 private: | 40 private: |
29 std::vector<int> one_; | 41 std::vector<int> one_; |
30 std::vector<std::string> two_; | 42 std::vector<std::string> two_; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 92 |
81 // Plugin does warn about inlining four ctor/dtor calls. | 93 // Plugin does warn about inlining four ctor/dtor calls. |
82 struct FourNonTrivialMembers { | 94 struct FourNonTrivialMembers { |
83 NonTrivialStruct a; | 95 NonTrivialStruct a; |
84 NonTrivialStruct b; | 96 NonTrivialStruct b; |
85 NonTrivialStruct c; | 97 NonTrivialStruct c; |
86 NonTrivialStruct d; | 98 NonTrivialStruct d; |
87 }; | 99 }; |
88 | 100 |
89 #endif // INLINE_CTOR_H_ | 101 #endif // INLINE_CTOR_H_ |
OLD | NEW |